更好地缓存动态图像

时间:2013-09-30 20:57:50

标签: php http-headers

我正在我的页面上动态创建图像,我告诉浏览器缓存图像,这是有效的。但是当我按 F5 刷新页面时,图像会重新加载,他们不应该这样做。这是我正在使用的HTML:

<img width="240" height="240"
src="/user-data/images/image.php?id=2&file=1234567890&height=240&width=240" />

以下是PHP标题部分:

header("Cache-Control: private, max-age=172800, pre-check=172800");
header("Pragma: private");
// Set to expire in 2 days
header("Expires: " . date(DATE_RFC822, strtotime(" 2 days")));
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])){
    // if the browser has a cached version of this image, send 304
    header('Last-Modified: ' . $_SERVER['HTTP_IF_MODIFIED_SINCE'], true, 304);
    exit;
}

那么,当有人按 F5 时,这是我可以控制的吗?我错过了标题中的内容吗?

1 个答案:

答案 0 :(得分:0)

如果您使用fastcgi - 将theese行放在.htaccess文件中:

RewriteEngine On
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]

$_SERVER['HTTP_IF_MODIFIED_SINCE']将可用。