当我将新内容上传到我的网页示例新图像时,当我连接到网页时,我仍然看到旧图像,即使当我查看代码时我看到了新内容。
我怀疑内容在我的浏览器上保持本地缓存,因此只有当缓存已满或被清除时,我才会看到新内容。
谁能告诉我是否可以让用户在我上传后立即看到我上传的新内容,而无需他们清除缓存。
我可以为本地用户禁用它吗?
当我将新内容上传到我的网页示例新图像时,当我连接到网页时,我仍然看到旧图像,即使当我查看代码时我看到了新内容。
我怀疑内容在我的浏览器上保持本地缓存,因此只有当缓存已满或被清除时,我才会看到新内容。
谁能告诉我是否可以让用户在我上传后立即看到我上传的新内容,而无需他们清除缓存。
我可以为本地用户禁用它吗?
?<?php echo time();?>
您可以在标签中的 url 末尾添加一个简单的内容<img/>
,但这将强制页面每次重新加载图像......而不仅仅是在您更新它们时。
最简单的方法是,无论何时修改文件,都给它一个新的文件名。
或者,您可以附加时间戳。粗略的版本是这样的:
<img src="images/foo.gif?t=<?php echo time(); ?>" />
但是,这将导致每次都重新加载图像。更好的版本是:
<img src="images/foo.gif?t=<?php echo filemtime($siteRootDir . '/images/foo.gif'); ?>" />
这将打印文件本身的修改时间戳,因此只有在实际修改文件时才会请求新版本。显然$siteRootDir
必须有一个相关的价值。
一种常见的方法是在图像调用后面添加一个 GET 字符串。
在配置中的某处设置字符串:
<?php $version = "xyz123"; ?>
现在将字符串添加到您的图像、脚本或 css 调用中:
<img src="path/to/image.png?<?php echo $version; ?>"/>
每当您更改内容时,请修改版本字符串以强制更新外部文件。
我所做的是将时间函数附加到图像 URL 的末尾,以便每次为每个用户动态地点击它。例如:
echo '<img src="images/image.jpg?' . time() . '" alt="">';