我有一个与缓存失效技术有关的问题...我正在尝试为我的网站实现一种机制,该机制会自动使浏览器缓存(css、图像...)无效。每当我更新网站(更改图像或样式)时,我希望能够以编程方式使浏览器缓存无效;
例如:对于当前版本,其中的 css 和一些图像已经改变。在这种情况下,我希望在更新完成后,当用户向网站执行请求时,他的浏览器缓存自动失效,从而强制重新下载新的图像和样式。这应该只针对客户端的第一个请求进行......应该从缓存中检索以下请求(因此设置 no-cache pragma 是不可能的)。
这是我尝试过的:在 BeginRequest 事件处理程序中,我添加了以下几行:
Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
Response.Cache.SetETag("\"e111293b17594f1487d136ea7e9314ac\"");
这会在响应标头中设置 ETag。我想如果我在每个版本中更改这个 ETag,并在每个请求中设置它,缓存就会失效,但似乎不是。我使用 Live HTTP 标头查看结果,并为响应正确设置了 ETAG,但 css 和图像仍然从缓存中获取。
关于我如何实现这一点的任何想法,或者它是否可以实现?