防止浏览器在PHP中缓存图像的最佳方法是什么?
我试过了标题(方法:
header("Expires: Tue, 03 Jul 2001 06: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");
Run Code Online (Sandbox Code Playgroud)
但是,除非手动清除浏览器的缓存,否则似乎无效.
我的图像被替换为相同的名称,例如avatar.png作为用户的可更新头像,但是当它被更新时,浏览器保持旧版本.
即使删除原件并添加新原件,浏览器仍然保留旧的avatar.png.
有什么想法吗?
js-*_*der 15
只需在图像URL的末尾添加一个随机参数即可.时间戳也可以很好地用于此.
例如在PHP中:
"http://domain.com/img.png?t=" . time();
Run Code Online (Sandbox Code Playgroud)
浏览器将始终将此图像加载为新图像.你应该小心使用它,它会使加载时间变慢.
小智 6
只要插入自己的图像,就不需要每次都阻止图片缓存.您可以使用filemtime($ imgPath)来检查上次更改图片的时间.
例如:' http : //example.com/img.jpg?last_picture_update= '.filemtime($ imgPath)