You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gatsby框架中CSP配置阻止GTM脚本加载问题求助

解决方案

问题根因

  • 你同时在gatsby-plugin-csp插件和.htaccess文件中配置了两套CSP规则,浏览器会执行严格度更高的规则,且两处配置均未添加GTM相关的许可域名
  • 当前script-src、img-src、connect-src规则中缺少GTM运行所需的第三方域名许可

操作步骤

  1. 统一CSP配置入口
    选择任意一种配置方式即可,避免规则冲突:

    • 若保留gatsby-plugin-csp,删除.htaccess中Header set Content-Security-Policy的整行配置
    • 若保留.htaccess配置,直接移除gatsby-plugin-csp插件的引入
  2. 补充GTM相关许可规则
    根据你选择的配置入口,修改对应CSP指令:

需补充的核心域名:https://www.googletagmanager.com(GTM脚本域名)、https://www.google-analytics.com(若配套使用GA数据上报)

示例修改(以保留.htaccess配置为例):
将原.htaccess中的CSP配置行修改为:

Header set Content-Security-Policy "default-src 'self' ${host}; base-uri 'self' ${host}; connect-src 'self' ${host} https://www.googletagmanager.com https://www.google-analytics.com; style-src 'self' data: 'unsafe-inline' ${host}; script-src 'self' 'unsafe-inline' ${host} https://www.googletagmanager.com https://www.google-analytics.com; img-src 'self' https: data: ${host} https://www.googletagmanager.com https://www.google-analytics.com; font-src 'self' https: data: ${host} fonts.gstatic.com; form-action 'self' https: ${host};"

若选择保留gatsby-plugin-csp配置,修改插件的directives配置:

directives: {
  'script-src': `'self' 'unsafe-inline' ${host} https://www.googletagmanager.com https://www.google-analytics.com`,
  'style-src': `'self' data: 'unsafe-inline' ${host}`,
  'font-src': `'self' data: ${host} fonts.gstatic.com`,
  'img-src': `'self' https: data: ${host} https://www.googletagmanager.com https://www.google-analytics.com`,
  'connect-src': `'self' ${host} https://www.googletagmanager.com https://www.google-analytics.com`
}
  1. 配置修改完成后重新构建Gatsby项目,重启服务验证GTM加载是否正常。

内容的提问来源于stack exchange,提问作者Leonardo Bernardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:30:05