我已经使用以下方式建立了一个新网站Material UI 创建 React 模板 https://github.com/mui-org/material-ui/tree/master/examples/create-react-app.
我添加了内容安全策略,已成功构建并部署,但是该页面未在浏览器中显示,并且收到以下错误:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'”。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-mB4hl8euSw00eXDUIRf8KeqpMfBXgg0FILGScPTo+n0=”)或随机数(“nonce-...”)。
我没有任何内联脚本。
当我将指定的哈希添加到内容安全策略时,网站可以正常工作,但如果我再次部署,哈希会发生变化,我需要使用新的哈希更新我的内容安全策略。
哈希值从哪里来?是否可以避免在部署过程中每次都需要手动更新哈希值?
感谢您一直以来的帮助。我已经找到了该问题的答案,因此我将分享它,希望对其他人有所帮助。
根据高级配置部分 https://create-react-app.dev/docs/advanced-configuration/在创建 React 应用程序文档中:
默认情况下,Create React App 会在生产构建期间将运行时脚本嵌入到index.html 中。
这似乎是动态构建脚本的来源。
这些文件进一步表明INLINE_RUNTIME_CHUNK=false
标志应包含在.env
文件以避免嵌入脚本。
通过包括INLINE_RUNTIME_CHUNK=false
中的标志.env
文件、重建和部署,我能够解决这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)