部署后网站需要强制刷新

Ger*_*orm 28 asp.net deployment iis-7 caching

在部署新版本的网站后,浏览器会从旧网页的缓存中加载所有内容,直到强制刷新完成为止.图像很旧,cookie很旧,而且有些AJAX部件不能正常工作.

部署后,如何继续使用最新版本的页面为用户提供服务?

该网页是使用IIS7 +的ASP.Net网页.

m.e*_*son 35

您可以将变量附加到每个部署的每个资源的末尾.例如,您可以命名样式表:

styles.css?id=1
Run Code Online (Sandbox Code Playgroud)

随着id每次都在改变.

这将强制浏览器下载新版本,因为它无法在其缓存中找到它.

  • 有没有更简单的方法来做到这一点?我正在加载1000个资源 (12认同)
  • @Germstorm在配置文件中设置变量并进行更新.将该变量添加到所有资源调用.一次更新,每个URL都会更改. (4认同)
  • 这似乎是一个奇怪的问题,但是如果您将变量添加到配置文件并在页面上的资源调用中调用该变量,那么当页面被缓存时会发生什么?由于配置文件位于服务器上,缓存的网页将调用新的配置值并获取正确的资源,但页面仍然被缓存,对吗? (2认同)

hro*_*oss 5

对于 ASP.NET,您可以使用缓存控件和过期标头。您还可以在 IIS 7 中为图像设置类似的标头。如果您有任何其他 cookie,您可以手动使它们失效

我还没有尝试过,但看起来您可以在 IIS 7 中更好地批量设置缓存控制。请参阅此线程此链接。此时,您只需取消设置您拥有的任何自定义 cookie(您将无法使用 HTTP 缓存控制设置来控制这些 cookie)。

我不知道有什么方法可以轻松地“一次性取消所有设置”。