状況に応じて、いくつかのオプションがあります。「images/image.png」がサーバー上の実際のファイルであり、直接アクセスしている場合は、フォルダーのキャッシュ設定を変更するか、.htaccess を使用してブラウザーに再送信するよう通知する必要があります。
<FilesMatch "\.(ico¦pdf¦flv¦jpg¦jpeg¦png¦gif¦js¦css¦swf)$">
ExpiresDefault A604800
Header set cache-control: "no-cache, public, must-revalidate"
</FilesMatch>
PHP を使用して画像を検索して返す場合は、PHP を使用してヘッダーを送信できます。
header("Expires: ".gmdate("D, d M Y H:i:s", time()+1800)." GMT");
header("Cache-Control: max-age=1800");
PHPで完全に行うには、実際に変更されているかどうかを確認できます
$last_modified_time = @filemtime($file);
header("Expires: ".gmdate("D, d M Y H:i:s", $last_modified_time+1800)." GMT");
//change with $last_modified_time instead of time().
//Else if you request it 29mins after it was first created, you still have to wait 30mins
//but the image is recreated after 1 min.
header("Cache-Control: max-age=1800");
header("Vary: Accept-Encoding");
// exit if not modified
if (array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER)) {
if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time) {
header("HTTP/1.1 304 Not Modified");
return;
}
}