← Page-Type Lab back
Discourse · Ember SPA · CSP ON (script-src 'self') · only self-host w/ default CSP

(B6) Discourse — CSP ブロック (要 allowlist)

Ember.js ベースのモダン SPA フォーラム。自己ホスト系で唯一 CSP を既定で ON にしている。デフォルト script-src 'self' のため、外部 si.js (widget-dev2.sitedrive.ai) は Refused to load でブロックされ、widget は mount しない。管理者が CSP allowlist に widget オリジンを追加すれば解決可能。

CSP ブロックの再現

このページの <meta http-equiv="Content-Security-Policy">script-src 'self' 'unsafe-inline'。外部オリジンの si.js は許可リストに 無いためブラウザがロードを拒否します。DevTools コンソールに Refused to load the script 'https://widget-dev2.sitedrive.ai/si.js' が出るのが 一次証拠です(securitypolicyviolation イベントには依存しません)。

解決策: CSP allowlist 追加

Discourse 管理画面の content security policy script src 設定に https://widget-dev2.sitedrive.ai を追加すれば、si.js のロードが許可され widget は正常に mount します。エンジン非互換ではなく配信ポリシーの問題です。