【问题标题】:Automatically clear cache in browser自动清除浏览器缓存
【发布时间】:2017-07-11 02:26:47
【问题描述】:

我想知道是否可以在访问应用程序时启用自动清除浏览器中的缓存?问题是,有时当用户在浏览器中访问新发布的 asp.net mvc 站点时,他们需要清除浏览器缓存以查看新站点,因为该站点的先前版本是在浏览器中反映的站点。我不知道这样做的正确方法。有人可以阐明一下吗?非常感谢!

【问题讨论】:

    标签: asp.net-mvc iis web browser


    【解决方案1】:

    当您说清除缓存时,我假设您的意思是 js 和 css 文件

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

    这可以通过在查询字符串中附加一个版本号来实现,例如:

    my.js?v=1.0
    

    所以当它更新到 v2 时将其更改为

    my.js?v=2.0
    

    my.js 也会更新

    css 文件也一样

    【讨论】:

      【解决方案2】:

      正确的方法是在您的网站中实现Cache Busting。

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

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

      如果您使用bundling and minification in asp.net,那么这也会为您处理。

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

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

      【讨论】:

        【解决方案3】:

        你试过了吗

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

        This might help you

        【讨论】:

          猜你喜欢
          • 2021-01-25
          • 1970-01-01
          • 2016-02-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多