CSPポリシーによりJSファイルがブロックされる問題

こんにちは、

昨日 Discourse インスタンスをインストールしましたが、今日になると画面が真っ暗になり、コンソールに以下が表示されます。

スクリプト 'https://ajax.cloudflare.com/cdn-cgi/scripts/95c75768/cloudflare-static/rocket-loader.min.js' の読み込みが拒否されました。これは、以下のコンテンツセキュリティポリシーディレクティブに違反しているためです: "script-src 'unsafe-eval' 'report-sample' [url]/logs/ [url]/sidekiq/ [url]/mini-profiler-resources/ [url]/assets/ [url]/brotli_asset/ [url]/extra-locales/ [url]/highlight-js/ [url]/javascripts/ [url]/plugins/ [url]/theme-javascripts/ [url]/svg-sprite/"。'script-src-elem' が明示的に設定されていないため、フォールバックとして 'script-src' が使用されています。
スクリプトの取得時に悪い HTTP レスポンスコード (404) が返されました。

これをどうすれば修正できますか?

Cloudflare のコントロールパネルで、お使いのサイトの Cloudflare を無効にしてください。特に Rocket Loader 機能は Discourse と 完全に 互換性がありません。

なぜこれが「完全に」互換性がないのか、詳しく教えていただけますか?私は他のカスタマイズと最適化が施された Rails アプリでもこれを成功裏に使用しています(通常は少しデバッグが必要です)。Discourse が CloudFlare のサービススイート全体と機能するように再設計されていない理由が気になります。Discourse は非常に広く使われているからです。

CloudFlareに聞いてください。コードは彼らのもので、 ours ではありません。

ここには実際にはメリットやインセンティブはありません。

Cloudflare が CDCK の開発者よりも Discourse のコードを最適化できるとお考えのようですが、その根拠は何でしょうか?

Cloudflare はキャッシュとしては問題ありませんが、すべてのパフォーマンス機能を無効にしないと、インストールは完全にサポート対象外となります。

ここでのいくつかの議論から、意味のあるファーストペイントが十分な速さで表示されないという問題が、さまざまなテストで確認されているようです。この問題が実際に解決されるまでの間、Rocket Loader がそれをさらに軽減してくれるかもしれないと期待していました。

いいえ、それでは状況が悪化します。Discourse は JavaScript アプリケーションなので、初回読み込み時にはアプリがブラウザの JavaScript 実行環境にダウンロードされるため、少し時間がかかります。

ご説明いただき、ありがとうございます。

技術的には機能するはずですが、もし動作しない場合は、Cloudflare が不適切なコードを書いたことが原因です。さらに詳しく調べたい場合は、Cloudflare にメールでご連絡ください。私たちは Cloudflare のコードを制御できません。なぜなら、私たちは Cloudflare ではないからです。

これで十分お分かりいただけたでしょうか。