Asp.net mvc 在浏览器中自动清除缓存

Asp.net mvc 在浏览器中自动清除缓存,asp.net-mvc,iis,web,browser,Asp.net Mvc,Iis,Web,Browser,我想知道当应用程序被访问时,是否可以在浏览器中自动清除缓存?问题是,有时当用户在浏览器中访问新发布的asp.net mvc站点时,他们需要清除浏览器缓存以查看新站点,因为该站点的早期版本反映在他们的浏览器中。我不知道这样做的正确方法。谁能帮我弄点光吗?非常感谢你 当你说清除缓存时,我假设你是指js和css文件 如果是这样,一种方法是在需要刷新时,给它一个不同的url 这可以通过在querystring中添加版本号来实现,例如: my.js?v=1.0 因此,当更新到v2时,将其更改为 my.j

我想知道当应用程序被访问时,是否可以在浏览器中自动清除缓存?问题是,有时当用户在浏览器中访问新发布的asp.net mvc站点时,他们需要清除浏览器缓存以查看新站点,因为该站点的早期版本反映在他们的浏览器中。我不知道这样做的正确方法。谁能帮我弄点光吗?非常感谢你

当你说清除缓存时,我假设你是指
js
css
文件

如果是这样,一种方法是在需要刷新时,给它一个不同的url

这可以通过在querystring中添加版本号来实现,例如:

my.js?v=1.0
因此,当更新到v2时,将其更改为

my.js?v=2.0
my.js将被更新

css文件也一样,你试过了吗

 // Stop Caching in IE
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);

// Stop Caching in Firefox
Response.Cache.SetNoStore();

正确的方法是在您的网站中实施

缓存破坏是附加某种形式的文件版本的过程 哈希到JavaScript和CSS文件等资源的文件名

它将自动处理缓存以获得性能(如果文件未更改),如果文件更改,则不允许缓存

如果你使用,那么这也会照顾到你

asp.net绑定创建的url包含一个查询字符串对,如
v=r0sLDicvP58AIXN_mc3qdyvvj5euznzdsa2n1pkvb81

查询字符串v具有一个值标记,该值标记是所使用的唯一标识符 用于缓存。只要捆绑包不变,ASP.NET 应用程序将使用此令牌请求AllMyScript捆绑包。如果 捆绑包中的任何文件更改,ASP.NET优化框架 将生成一个新令牌,保证浏览器请求 bundle将获得最新的bundle