Cloudflare Rocket Loader による Uncaught ReferenceError: Discourse is not defined

私のサイトのいくつかのトピックをモバイルデバイスで開くと、JS コンソールに以下のエラーが表示されます。

例えば、このトピックをモバイルで開くと:FAQs For New Content Writers - How To Discuss

トピック名のスラッグではなく ID を直接追加してトピックに移動しても、同じエラーが発生します。

このトピックをデスクトップで開いても同じエラーが発生します:

Discourse を最近アップグレードし、ターミナルから手動で再構築も行いましたが、このエラーは解消されません。解決方法を教えていただけますか?

何かプラグインが原因でしょうか?現在インストールされているプラグインは以下の通りです:

すべてのプラグインは最新バージョンです。

また、試しに確認したところ、サイトへアクセスして「FAQ」というトピックを検索し、クリックして開く場合は問題が発生しませんが、このトピックの URL を直接コピーしてブラウザで開くか、他の外部サイト(Discourse 以外)からのリンクをクリックすると、このエラーが発生します。

生エラーログは以下の通りです:

「いいね!」 1

Cloudflare Rocket Loader を使用していますが、これはサポートされていません。

Cloudflare 管理パネルで Discourse の DNS エントリに移動し、クラウドアイコンをグレーに設定してください。オレンジ色のクラウドが表示された場合、Discourse はランダムに失敗します。ご覧の通りです。

「いいね!」 3

@Falco 迅速なご返信、誠にありがとうございます。この Cloud をグレー(DNS のみ)に変更しました。以前はプロキシ経由でした。

しかし、同じエラーが表示されたままです。CF 設定で Rocket Loader も無効にする必要があると思います。

設定で Rocket Loader も無効にしました。

しかし、その URL を更新しても、同じエラーが表示されたままです :frowning:

私の経験では、変更が反映されるまで数時間かかります。

「いいね!」 1

はい、確認しましょう。つまり、クラウドの灰色設定を維持し、設定から Rocket Loader もオフにしておくことをお勧めするということですね?

また、私のサイト UI が頻繁にランダムに崩れてしまい、コンソールに以下のエラーが表示されることに気づきました。

NetworkFirst.mjs:167 Uncaught (in promise) no-response: no-response :: [{"url":"https://pagead2.googlesyndication.com/pagead/gen_204?id=puberror&context=165&msg=TagError%3A%20adsbygoogle.push()%20error%3A%20No%20slot%20size%20for%20availableWidth%3D0%0Aat%20Vj%20(https%3A%2F%2Fpagead2.googlesyndication.com%2Fpagead%2Fjs%2Fadsbygoogle.js%3A155%3A453)%0Aat%20Uj%20(adsbygoogle.js%3A154%3A137)%0Aat%20ik%20(adsbygoogle.js%3A162%3A239)%0Aat%20Pk%20(adsbygoogle.js%3A191%3A493)%0Aat%20sl%20(adsbygoogle.js%3A209%3A106)%0Aat%20rl%20(adsbygoogle.js%3A207%3A1123)%0Aat%20Cl%20(adsbygoogle.js%3A222%3A288)%0Aat%20adsbygoogle.js%3A217%3A43%0Aat%20Ce.n.ba%20(adsbygoogle.js%3A68%3A294)%0Aat%20Qe%20(adsbygoogle.js%3A77%3A357)&shv=r20200924&eid=42530672%2C21067492&client=ca-pub-7087907313091932&slotname=5744927958&url=https%3A%2F%2Fhowtodiscuss.com%2Flatest"}]
    at a.makeRequest (https://howtodiscuss.com/javascripts/workbox/workbox-strategies.prod.js:1:2145)

広告ブロッカーを無効にしても有効にしても、このエラーは消えません。

そのトピックは以前は正常に動作していましたが、

また、現在「安全でない」エラーが発生しています。

プロキシを有効にし、設定で Rocket Loader を無効にしました。様子を見ます。

オレンジ色のクラウドは、インストール時にサイト用の証明書が取得されなかったことを意味します。この証明書は、他のすべてのユーザーに対してデフォルトでインストールされます。

修正については、以下のリンクを読んで手順に従ってください。

「いいね!」 2

わかりました。オレンジ色のクラウドプロキシに変更し、設定から Rocket Loader をオフにしたところ、現在は正常に動作しているようです。ありがとうございます!

また、Nginx の経験があるかどうか教えていただけますか?また、クエリパラメータ付きの URL をリダイレクトする方法についてご教示ください:https://stackoverflow.com/questions/64110945/nginx-virtualhost-how-to-redirect-a-discourse-url-with-amp-query-parameter-to