如何防止浏览器图像缓存


How to prevent browser image caching?

防止浏览器在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");

但除了手动清除浏览器的缓存外,似乎什么都不起作用。

我有一些图像被替换为相同的名称,例如avatar.png作为用户的可更新头像,但当它更新时,浏览器会保留旧版本。

即使删除了原始头像并添加了新头像,浏览器仍然保留旧的头像.png.

有什么想法吗?

只需在图像URL的末尾放置一个随机参数。时间戳也可以很好地用于此。

例如在PHP中:

"http://domain.com/img.png?t=" . time();

浏览器将始终加载此新图像。不过,您应该小心使用它,它会使加载时间变慢。

只要插入自己的图像,就不需要每次都阻止图片缓存。您可以使用filemtime($imgPath)来检查上次图片更改的时间。

例如:'http://example.com/img.jpg?last_picture_update="。filemtime($imgPath)

在同一浏览会话中,如果使用相同的IMG src,无论缓存设置如何,浏览器都会经常重复使用其保留在内存中的图像副本。这似乎就是发生在你身上的事情。

我在这里总结了一些常见的"更新图像"问题的解决方案。

谢谢你,这次像这次一样为我运行

不运行<

echo "&lt;img src='gambarLimas.jpg'><br>"; 

运行良好的

echo "&lt;img src='gambarLimas.jpg?t=".time()."'><br>";