如何配置Nuxt3静态构建移除内联脚本以适配严格CSP
背景
我正在开发一个Nuxt3项目,部署时遇到了问题。应用被构建为100%静态文件(已禁用SSR),且需要强制执行严格的CSP。
问题
默认配置下,Nuxt会生成2个内联script标签:
- config:指定
window.__NUXT__.config(包含runtime和app配置对象) __NUXT_DATA__:似乎包含构建相关的元数据(错误信息、serverRendered等)
这些内联脚本与不允许内联脚本的CSP规则冲突。
期望解决方案
我希望找到一种配置Nuxt的方式,将这些脚本从内联形式改为链接到静态文件(或直接打包进主脚本)。
已排除的解决方案
我已考虑并排除了以下几种方案:
- nonce:应用为静态部署,nonce不可行。
- unsafe-inline:此方案不被接受(无法通过审核)。
- script hash:每次更新应用配置都需手动修改CSP,过于繁琐。
- nuxt.config.ts > features > noscript:此配置会禁用所有脚本,导致应用无法正常运行。
- nuxt.config.ts > render > injectScripts:该方案看似可行,但仅适用于Nuxt2。
内容的提问来源于stack exchange,提问作者bastien girschig
相关产品推荐
相关产品推荐

