【发布时间】:2014-06-30 11:40:17
【问题描述】:
我有一个包含大量 aspx 页面的解决方案。我们还在一个 CSS/js 文件相对定期更改的环境中工作(比我的开发团队更频繁,我更喜欢)。当我们进行这些 CSS/js 更改时,这给我们的用户带来了一个问题,因为我们的用户最终会遇到缓存冲突。我们通常会指导他们清除缓存并解决所有问题,但我们不必立即告诉他们清除缓存。
所以我使用了我在这里看到的一篇文章中的 HTML 响应标头,以便让用户清除他们的缓存:
Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.0.
Response.AppendHeader("Expires", "0"); // Proxies.
这似乎工作正常。我也想过在我们的js文件上使用querystring参数来强制刷新:
<script src="../js/jquery-1.4.2.min.js?v=1" type="text/javascript"></script>
这可能会帮助我们解决 js/css 缓存问题,但我不相信这是唯一被缓存的页面内容(因此在主要版本期间会引发错误)。
一旦我确信使用 HTML 响应标头可以实现其目标,我也计划申请过期。
所以问题是:我是否必须将这个(作为响应标头)添加到我们解决方案中的每个 aspx 中?我可以将它加载到父框架中并让子 iframe“继承”缓存清除吗?如果不是这样,我可以将它放入母版页并让内容页面从母版页接收这些标题吗?任何见解都会很棒。
【问题讨论】:
标签: c# html css asp.net caching