web-dev-qa-db-ja.com

ブラウザに新しい画像をロードさせる

私は最近、クライアントのためにいくつかの画像置換作業を行っています。彼は新しい画像pngファイルを私に送信し、古いファイルを新しいファイルに置き換えてアップロードします(同じ名前のまま)。ページをハードリフレッシュするために必要な新しい画像を見るには(shift + refresh)と言いますが、顧客がいつ新しい画像を見るのか不思議に思っています。私はどちらも見つけられないようです。また、画像が変更されたことをブラウザに教育する方法があるかどうかも疑問に思い、メタタグを使用してこれを行うことができると考えましたが、そうではないようです。

キャッシュされた画像を破棄してサーバーから新しい画像をロードすることをブラウザが決定した場合(ブラウザが独自のデバイスに残されている場合)、この問題について誰でも私に啓発できますか?名前を変更し、変更を反映するためにHTMLとCSSを再コーディングします。

1
byronyasgur

置換された画像の名前に1文字を追加すると、問題が解決しました!

問題はブラウザのキャッシュです。次のコードを使用して、ページの読み込みの間にブラウザが画像などの一般的に使用されるリソースを再ダウンロードしないように、すべてのメディアの将来の有効期限を設定します。

同じコードを使用して、日付を変更することで逆効果を引き起こすことができます...

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|ico|js|css|swf)(\.gz)?$">
Header set Expires "Thu, 15 Apr 2020 20:00:00 GMT"
Header unset ETag
FileETag None
</FilesMatch>

しかし、ブラウザのキャッシュサイズと他の変数はユーザーマシンで設定され、guarantee画像が更新されることはほとんどありません(ファイル名の変更を超えて)

このようなことを行うと、サイトとユーザーにマイナスの影響もあります。帯域幅が増加し、ページの読み込みが増加します。これはSEOにとっても、すべてにとっても悪いことです。

1
toomanyairmiles