1

ユーザーが新しい画像をアップロードし、画像名が同じままである場合(画像名はファイル拡張子とユーザーID値に基づいているため)、chromeはキャッシュを更新せず、画像は同じままであるように見えます。

たとえば、ユーザーはファイルをアップロードしますimage.png

サーバーはファイルを分析し、次のように保存します

87.png

ただし、前のファイルimage2000.pngは次のようにも保存されました

87.png

それらは異なるファイルですが。

さて、img呼び出しは

<img src="/images/87.png">

両方の別々の画像に対して、しかしchromeはそれらが変更されたことを認識しないため、87.png更新されたばかりのサーバーに新しい画像をロードする代わりに、キャッシュされた画像を出力します。

Chrome(および他のブラウザ)にこのイメージが更新されたことを認識させ、キャッシュではなくサーバーからイメージをロードする方法はありますか?または、画像を実現するために新しい名前を付ける必要がありますか?

4

2 に答える 2

2

申し訳ありませんが、質問を正しく読みませんでした。

この動作は、サーバーからの応答のexpiresヘッダーが原因です。イメージを更新した後、そのイメージのヘッダーを期限切れにするように設定します。したがって、ブラウザは更新された画像を取得します。

header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

ヘッダーをupdatdイメージに具体的に設定するにはどうすればよいですか?

更新という列をデータベースに配置します。したがって、画像を更新するたびに、この列を1に設定します。

(if update ==1)

適切なヘッダーを設定する

于 2012-04-11T04:55:06.853 に答える
0

Webサーバーを適切に構成する必要があります。サーバーが画像とともに返す「ETag」ヘッダーと「Expires」ヘッダーに注意してください。

于 2012-04-11T05:04:26.237 に答える