【发布时间】:2018-08-17 10:33:07
【问题描述】:
我有缩略图 PHP 脚本,它可以重新制作缩略图。在加载缩略图之前一切正常,浏览器无法从服务器重新加载图像并显示旧缩略图。我尝试了以下技巧:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
还有元标记:
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Expires" content="Tue,01 Dec 1990 06:30:00 GMT">
问题是,我做错了什么还是有其他方法?我知道在图像末尾添加“?randomnumber”技巧。但是,我真的不想使用它,因为这意味着浏览器会缓存大量图像以及让事情看起来很乱。而且我没有真正的方法来可靠地获得缩略图编辑日期。
【问题讨论】:
-
这可能是因为您的服务器未配置为执行此操作,请查看 .htaccess 文件:stackoverflow.com/a/11724596/5374294
-
除非您真的想完全禁用缓存,否则我建议将"file modified" timestamp 附加到 URL(而不是随机数)。这样,只有自上次加载后未更改的文件才会从缓存中加载。
-
@showdev 到目前为止,这似乎是最好和最优雅的方式。谢谢