在发布新图像时,确保图像不会在客户端浏览器中兑现的最佳方法是什么?

时间:2014-09-17 10:29:08

标签: html css asp.net image iis

我们多次从客户那里得到的问题是,随着最新版本发布到生产网站的新图像没有出现在他们的浏览器中。对此最好的解决方案是什么?

  1. 我可以发布的图像文件夹的IIS内容到期。
  2. 问题是,我必须将其启用几天,直到99%的用户访问过该网站。

    1. META标签,HttpCacheability.NoCache等不起作用,因为它们是图像。

    2. 对于JS和CSS或favicon,可以通过编程方式在链接末尾添加版本。但对于图像该怎么办?链接也可以来自CSS。

    3. 因此,我能想到的唯一选择是每次更改图像名称:(

      或者在网站中添加一个包含所有图像链接的字符串,该字符串应在检入时用版本号替换(带脚本)。

      还有其他选择吗?

1 个答案:

答案 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>