PHP浏览器不缓存动态图像


PHP - browser not caching dynamic image

我在获取图像脚本以在浏览器(firefox)中缓存图像时遇到问题。

这是代码:

$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;
    }

图像被输出,但在那之后,它总是使用200响应代码而不是304转到else语句。我试图强制使用304,但看起来浏览器从未缓存过图像。

尝试将其称为jpg(将其添加到htaccess:中

RewriteEngine on
RewriteRule image.jpg your_script.php [L]

)

不要忘记更改your_script.phpimage.jpg