Firefoxで以前キャッシュされた画像(アバター)の読み込み/表示ができないことがある

ディスクにキャッシュされ、後続のリクエストで取得されるアバターに関連するFirefoxのバグと思われるものを調査しています。

Firefoxへの報告はこちら:

この問題は、通常表示されるはずのアバターが表示されないという形で現れます。例:

それぞれ以下のようになります:


<img loading="lazy" alt="" width="24" height="24" src="https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mancera1979/48/732001_2.png" class="avatar" title="mancera1979 - Frequent Poster">
<img loading="lazy" alt="" width="24" height="24" src="https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/jca34f/48/340148_2.png" class="avatar" title="JCA34F - Frequent Poster">

そして、これらのURLはそれぞれ以下にリダイレクトされます:

https://europe1.discourse-cdn.com/arduino/optimized/4X/3/3/7/337a5e4169461364c9805cfad882c9eb0332bdf3_2_48x48.png
https://europe1.discourse-cdn.com/arduino/optimized/4X/4/b/8/4b8c803f304aa7e7c487184224ec9f970c96e8c4_2_48x48.jpeg

開発者ツールを使用してDOMを検査すると、Firefoxは「画像を読み込めませんでした」と報告します。

最初にリクエストした際にはこの問題は発生せず、キャッシュから画像を読み込もうとする後続のリクエストでのみ発生します。

ページをリロードすると、Firefoxが正常に画像を読み込むことがあります。例:

リロード後:


わかっていること:

Discourseアプリケーション固有の問題ではないこと。アバターへのリンクのみを含む静的なHTMLページで問題を再現できました。

FirefoxでHTTP/3を無効にしても問題は解決しません。

ブラウザキャッシュをクリアすると、次回は画像が正常に読み込まれます。

エンドユーザーから、デスクトップとモバイルの両方でこの問題が報告されています。

推測される原因:

リダイレクト後に画像が読み込まれていることに関連している可能性があります。

一部のホスティング環境には「リダイレクトチェイサー」がインストールされており、元のURLへのリクエストがリダイレクトではなく画像自体を返すようになっています。これらの環境では、この問題が発生した人はいないと思われます。

わかっていないこと:

最初から最後まで一貫した明確な問題再現手順がありません。

「いいね!」 6

Firefoxでもこの現象を確認しました。関連があるかどうかわかりませんが、私のサイトではCDNとしてbunny.netを使用しています。

「いいね!」 1

興味深いですね。では、さらに詳しい情報や再現手順があれば、ここに投稿してください。


:face_with_raised_eyebrow:
:microscope:

それは非常に適切ですね :laughing:

「いいね!」 4

これは、@david、影響があるかどうかを確認するためにこれを無効にするサイト設定が、次の手段のように思えます。

「いいね!」 1

@supermathie の静的ページでのあいまいな再現が可能なため、loading="lazy" を使用しないバージョンを作成してみてはどうでしょうか? Discourse を変更するよりもはるかに簡単です。

@supermathie、それは試せることでしょうか?

「いいね!」 2

他のCDNは使いません!:rabbit2:

「いいね!」 1

オフロードしたりオンロードしたりしていましたが、ちょうど今、レイジーページ(動作した)をロードしてから非レイジーページ(失敗した)をロードすることで問題を再現しました。

残念ながら、Firefoxは開発者ツールが開いている状態でリロードするとアセットを完全にリロードするようでしたが(キャッシュを無効にするは設定されていません)、…これは奇妙です。

ユーザーがアバターを変更/更新し、新しいアバターにリダイレクトされたようです。何がこれをトリガーするのかわかりません @david

この追加のリダイレクトがFirefoxのバグを一時的にトリガーしたと推測します。これは、リダイレクトチェイサーによる動作の違いと一致しています。

トリガーできるかもしれません。

アバターを変更しました。1時間後にリロードしたときに壊れるかどうか見てみましょう。

編集:今回は壊れませんでした

しかし、このページでの私のいたずらは他のページに悪影響を与えているようです…これらのアバターはすべて機能しなくなりました。ネットワークリクエストが「スタック」しているためだと思います。

「いいね!」 2

今日:lazy を付けてページをリロードしたところ、問題なく読み込まれました。

その後、lazy を付けずにページを読み込んだところ:

:person_shrugging:

ですから、lazy= が問題の原因である可能性は低いということでしょうか?少なくとも、一つは除外されましたね :sweat_smile:

「いいね!」 2