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

Electron应用Content-Security-Policy meta标签unsafe-inline配置不生效

问题根因
  • Electron 的 CSP 规则存在优先级差异,主进程BrowserWindow配置、脚手架打包配置中声明的 CSP 优先级高于 HTML 内的<meta>标签规则。你遇到的报错仍显示初始的default-src 'self' 'unsafe-inline' data:规则,说明你添加的 meta 配置被上层更高优先级的规则覆盖,并未实际生效。
  • 谷歌字体除了https://fonts.googleapis.com的样式资源,还会从https://fonts.gstatic.com加载字体文件,你当前的配置未包含该源,即使 meta 规则生效后续仍会出现加载报错。
修复步骤
  1. 优先修改最高优先级的 CSP 配置:找到主进程中创建BrowserWindow的代码,修改webPreferences下的contentSecurityPolicy字段,参考配置如下:
const mainWindow = new BrowserWindow({
  // 窗口原有配置保持不变
  webPreferences: {
    // 其他原有配置保持不变,新增/修改以下CSP配置
    contentSecurityPolicy: `
      default-src 'self' https://cdn.scaleflex.it https://fonts.googleapis.com https://fonts.gstatic.com 'unsafe-eval' 'unsafe-inline' data:;
      style-src 'self' https://cdn.scaleflex.it https://fonts.googleapis.com 'unsafe-inline';
      font-src 'self' https://cdn.scaleflex.it https://fonts.googleapis.com https://fonts.gstatic.com data:;
    `
  }
})
  1. 如果你使用 Electron Forge、Electron Builder 等脚手架打包,检查package.json中打包配置项里是否有单独声明的 CSP 规则,同步修改为上述内容即可。
  2. 如果你需要使用 HTML 内的 meta 标签管理 CSP,先删除主进程、打包配置中的所有 CSP 声明,即可让 meta 规则生效,注意同步补充https://fonts.gstatic.com到配置的相关源中。

内容的提问来源于stack exchange,提问作者Maifee Ul Asad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:45:08