1. ホーム
  2. html

[解決済み] 一部の画像のキャッシュを無効にする

2022-08-18 06:32:06

質問

PHPのライブラリを使って画像を生成しています。

時々、ブラウザが新しく生成されたファイルを読み込まないことがあります。

自分で動的に作成した画像だけキャッシュを無効にするにはどうしたらよいでしょうか。

注意:作成された画像には、長期間にわたって同じ名前を使用する必要があります。

どのように解決するのですか?

この問題に対する一般的でシンプルな解決策は、ハックのように感じますが、かなり移植性があります。動的な画像に対するそれぞれのリクエストに、ランダムに生成されるクエリ文字列を追加することです。

つまり、たとえば

<img src="image.png" />

となる。

<img src="image.png?dummy=8484744" />

または

<img src="image.png?dummy=371662" />

ウェブサーバから見ると同じファイルにアクセスしますが、ブラウザから見るとキャッシュは実行されません。

乱数生成は、ページを提供するときにサーバー上で行われるか(ページ自体がキャッシュされていないことを確認すればよい...)、またはクライアント上で行われます(JavaScriptを使用する)。

Webサーバーがこのトリックに対処できるかどうかを確認する必要があります。