当您更新网站时,如何处理保存在本地缓存中的图像


Ho to deal with images saved localy in cache when you update a website?

当我将新内容上传到我的网页示例新图像时,当我连接到网页时,我仍然看到旧图像,即使我在代码中看到新内容。

我怀疑内容在我的浏览器上保持本地缓存,所以只有当缓存满了或被清理时,我才能看到新的内容。

谁能告诉我是否有可能允许用户在我上传后立即看到我上传的新内容,而不必清除缓存。

我可以禁用本地用户吗?

最简单的方法是,每当你修改文件时,给它一个新的文件名。

也可以附加时间戳。一个粗略的版本是这样的:

<img src="images/foo.gif?t=<?php echo time(); ?>" />

但是,这将导致每次重新加载图像。更好的版本是:

<img src="images/foo.gif?t=<?php echo filemtime($siteRootDir . '/images/foo.gif'); ?>" />

这将打印文件本身的修改时间戳,因此只有当文件被实际修改时才会请求新版本。显然$siteRootDir一定有相关的值

您可以在<img/>标签的url末尾添加一个简单的?<?php echo time();?>,但这将强制页面每次重新加载图像。

一种常见的方法是在图像调用后添加get字符串。

在你的配置中设置字符串:

<?php $version = "xyz123"; ?>
现在将字符串添加到您的图像,脚本或css调用中:
<img src="path/to/image.png?<?php echo $version; ?>"/>

当你改变你的东西修改版本字符串强制更新外部文件

我所做的是将时间函数附加到图像URL的末尾,以便每次为每个用户动态命中它。例如:

echo '<img src="images/image.jpg?' . time() . '" alt="">';