有一些图片出现在我的网页上,我们从后端更新。但是那些没有得到直接反映的图像意味着用户需要做ctr+F5。这意味着客户端的浏览器缓存了这些图像。有没有办法在更新后重新加载更新的图片,JS,CSS?
我从我这边尝试过的。
ETag
这对我不起作用。
在我的页面页眉中添加了以下标签
<meta http-equiv="Expires" CONTENT="-1" ></meta>
<meta http-equiv="cache-control" content="no-cache"></meta>
<meta http-equiv="Pragma" CONTENT="no-cache"></meta>
但是同样的结果。
在Apache中添加了以下配置
ExpiresActive on
ExpiresByType application/javascript "access plus 0 seconds"
ExpiresByType image/jpg "access plus 0 seconds"
ExpiresByType image/jpeg "access plus 0 seconds"
ExpiresByType image/gif "access plus 0 seconds"
ExpiresByType image/png "access plus 0 seconds"
ExpiresByType text/css "access plus 0 seconds"
以上配置适用于JS。但是面对图像的问题。我不能在url/image名称的末尾添加任何令牌号或版本号,这也需要太多的代码更改和测试。请指导我,有没有其他集中的方法来限制图像,css从缓存
提前谢谢。
发布于 2012-02-23 10:13:03
您可以使用javascript更改任何图像的src,这将导致名称更改并强制浏览器重新加载。
示例:
document.getElementById('myimg').src = document.getElementById('myimg').src + '?r=' + Math.random();
不是最干净的解决方案,但你的选择似乎是有限的。
要使用jQuery重新加载整个页面图像,您可以尝试:
$('img').each(function() {
$(this).attr('src', $(this).attr('src') + '?r=' + Math.random())
});
通过修改初始选择器,您可以将其限制为一个区域,这样您就不会重新加载所有内容。这不会影响由css样式指定的图像。
https://stackoverflow.com/questions/9409748
复制相似问题