Discourse 在运行的时候提示有 JS 错误。
错误如下:
Refused to load the script 'https://www.ossez.com/cdn-cgi/apps/head/qk5vBDFy7qBIoPy3q8a6LUoKei8.js' because it violates the following Content Security Policy directive: "script-src https://www.ossez.com/logs/ https://www.ossez.com/sidekiq/ https://www.ossez.com/mini-profiler-resources/ https://www.ossez.com/assets/ https://www.ossez.com/brotli_asset/ https://www.ossez.com/extra-locales/ https://www.ossez.com/highlight-js/ https://www.ossez.com/javascripts/ https://www.ossez.com/plugins/ https://www.ossez.com/theme-javascripts/ https://www.ossez.com/svg-sprite/ https://www.google-analytics.com/analytics.js https://analytics.ossez.com/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
然后将出现错误的资源添加到上面列表中。
如下图:
然后,你再刷新界面,就不会有上面的错误提示了。
针对不同的资源,你可以在这里进行添加。
https://www.ossez.com/t/discourse-refused-to-load-the-script/118