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