我遇到了一个问题,无法在浏览器(Firefox)中缓存我的图片脚本。
图像被输出,但之后它总是进入else语句,并返回200响应代码,而不是304。我试图强制使用304,但似乎浏览器从未缓存该图像。
以下是代码:
$type = 'image/jpeg';
$image = '../../files/image.jpeg';
header("Content-type: $type");
header("Cache-Control: private, max-age=10800, pre-check=10800");
header("Pragma: private");
header("Expires: " . date(DATE_RFC822,strtotime("1 week")));
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])){
header('Last-Modified: '.$_SERVER['HTTP_IF_MODIFIED_SINCE'],true,304);
exit;
} else {
header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($image)).' GMT', true, 200);
echo @readfile($image);
exit;
}
图像被输出,但之后它总是进入else语句,并返回200响应代码,而不是304。我试图强制使用304,但似乎浏览器从未缓存该图像。
HTTP_IF_MODIFIED_SINCE
。 - Jason McCreary