web-dev-qa-db-ja.com

HTML:画像は常にサーバーからリロードされます

Webページの画像は、変更されていなくても、常にサーバーから読み込まれていることがわかりました。これらはページではなく画像であるため、有効期限を含めることはできません...ブラウザが既に持っている画像をリロードしないようにするにはどうすればよいですか?

更新:
PHPでこれを使用してみました:

  header ("ExpiresByType image/gif \"modification plus 10 minutes\"");

ただし、これにより内部サーバーエラーが発生します。

1
Loki

ヘッダーが正しくありません。 ここ はいくつかのドキュメントです。次のようにExpiresにする必要があります。

 header("Expires: Thu, 30 May 2013 11:26:00 GMT");

通常、次のようにPHPで生成します。

 header('Expires: '.date('D, d M Y H:i:s', time() + 60*10).' GMT');

タイプは無関係であるため、タイプを指定する必要はありません。ヘッダーは、単に提供している結果に適用されます。 max-ageヘッダーの代わりに を使用することもできます:

header('Cache-Control: max-age=600');
4
Itai

ExpiresByTypeは、PHPではなくApacheディレクティブです。通常、これは画像と同じフォルダー(または仮想ホスト)の.htaccessファイルに配置します。

ExpiresByType image/gif "modification plus 10 minutes"

これを機能させるには、Apacheモジュールmod_expiresを有効にする必要があります。

2
Tim Fountain