Geo*_*XYZ 5 asp.net caching invalidation
我有一个与缓存失效技术有关的问题......我正在尝试为我的网站实现一种机制,它会自动使浏览器缓存无效(css,images ...).每当我更新网站(更改图像或样式)时,我希望能够以编程方式使浏览器缓存无效;
例如:对于当前版本,css和一些图像已经改变.在这种情况下,我希望在更新完成后,当用户对网站执行请求时,他的浏览器缓存会自动失效,从而迫使重新下载新的图像和样式.这应该只针对客户端的第一个请求...应该从缓存中检索以下内容(因此设置no-cache pragma是不可能的).
这是我尝试过的:在BeginRequest事件处理程序中,我添加了以下行:Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate); Response.Cache.SetETag( "\" e111293b17594f1487d136ea7e9314ac\"");
这会在响应头中设置ETag.我想如果我在每个版本中更改此ETag,并在每个请求中设置它,缓存将失效,但似乎不是.我使用Live HTTP头来查看结果,并且ETAG已正确设置为响应,但css和图像仍然来自缓存....
有关如何实现这一目标的任何想法,或者它是否可以完成?
提前致谢!
我过去遇到过这样的问题.不幸的是,我找不到一个非常好的方法来完成这个,所以我不得不想出一个解决方法.我只处理CSS文件的这个问题,所以我为每个CSS引用添加了一个额外的查询字符串参数,例如
<link rel="stylesheet" type="text/css"
href="default.css?buildnumber=<%= Buildnumber %>" />
Run Code Online (Sandbox Code Playgroud)
随着每个版本的增加,内部版本号会增加,因此浏览器被迫寻找这个新文件.不是一个理想的解决方案,但它顺利运作.
| 归档时间: |
|
| 查看次数: |
1639 次 |
| 最近记录: |