我们多次从客户那里得到的问题是,随着最新版本发布到生产网站的新图像没有出现在他们的浏览器中。对此最好的解决方案是什么?
问题是,我必须将其启用几天,直到99%的用户访问过该网站。
META标签,HttpCacheability.NoCache等不起作用,因为它们是图像。
对于JS和CSS或favicon,可以通过编程方式在链接末尾添加版本。但对于图像该怎么办?链接也可以来自CSS。
因此,我能想到的唯一选择是每次更改图像名称:(
或者在网站中添加一个包含所有图像链接的字符串,该字符串应在检入时用版本号替换(带脚本)。
还有其他选择吗?
答案 0 :(得分:0)
1-标题
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
但有时候,浏览器会忽略它们。
2- url参数
<img src="myimage.jpg?1243"/>
您可以通过html或脚本服务器端的javascript执行此操作。
3- .htaccess
以编程方式在源中添加序列到文件名:
filename[.serial].ext
然后在服务器上添加.htaccess而不是修剪串行
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
</IfModule>