在部署新的ASP.NET网站版本后,有没有方法可以强制客户端浏览器刷新缓存项,特别是图片、CSS和JavaScript文件?问题是我不能告诉每个使用该网站的人按下Ctrl + F5。那么如何强制浏览器这样做呢?
你好,
我曾经在一些网站上遇到过这个问题,主要出现在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"
RegisterBundles
中设置BundleTable.EnableOptimizations = false;
或者在web.config
文件中设置<compilation debug="true" />
来禁用它。建议您阅读Bundling and Minification的 Bundle Caching 部分,尤其要注意:如果捆绑包中的任何文件发生更改,ASP.NET优化框架将生成一个新的令牌,确保浏览器请求获取最新的捆绑包。 - user3559349