Discourse 在运行的时候提示有 JS 错误。
错误如下:
Refused to load the script 'https:///cdn-cgi/apps/head/qk5vBDFy7qBIoPy3q8a6LUoKei8.js' because it violates the following Content Security Policy directive: "script-src https:///logs/ https:///sidekiq/ https:///mini-profiler-resources/ https:///assets/ https:///brotli_asset/ https:///extra-locales/ https:///highlight-js/ https:///javascripts/ https:///plugins/ https:///theme-javascripts/ https:///svg-sprite/ https:///analytics.js https:///matomo.js". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。
CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。
因此,你可以将上述资源添加到 Discourse 信任资源中。
在 Discourse 的后台,搜索:content security policy script src
然后将出现错误的资源添加到上面列表中。
如下图:
然后,你再刷新界面,就不会有上面的错误提示了。