强制清除浏览器缓存

4
在部署新的ASP.NET网站版本后,有没有方法可以强制客户端浏览器刷新缓存项,特别是图片、CSS和JavaScript文件?问题是我不能告诉每个使用该网站的人按下Ctrl + F5。那么如何强制浏览器这样做呢?

如果您使用bundles,所有这些都将自动处理。否则,请为您的脚本分配一个版本号。 - user3559349
你所需要的是所谓的“缓存破坏”。你可以了解一下并查看不同的实现策略。大多数方法都涉及将某些内容附加到文件名上,以强制从服务器重新拉取。 - Ian
那么我猜你一定通过在RegisterBundles中设置BundleTable.EnableOptimizations = false; 或者在web.config文件中设置<compilation debug="true" />来禁用它。建议您阅读Bundling and MinificationBundle Caching 部分,尤其要注意:如果捆绑包中的任何文件发生更改,ASP.NET优化框架将生成一个新的令牌,确保浏览器请求获取最新的捆绑包。 - user3559349
解释了问题 - Tohid
显示剩余2条评论
1个回答

4

你好,

我曾经在一些网站上遇到过这个问题,主要出现在FireFox和Chrome浏览器上。

针对每个CSS和Javascript文件,我会在URL后面添加一个参数?1d=。当我部署包含CSS或JavaScript的更改时,它将获取新的ID号码,最终用户将获得当前的CSS和JavaScript,而无需进行硬重置CTRL+F5。

src="/Scripts/myJavaScript.js?id=71.11"

href="/Styles/MyStyles.css?id=71.11"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接