【问题标题】:Can browser cache cleanup for my domain be initiated from the server?可以从服务器启动我的域的浏览器缓存清理吗?
【发布时间】:2014-02-03 06:40:57
【问题描述】:

是否可以从服务器启动我的域的浏览器缓存清理?

我看到很多人建议使用 JavaScript 清除浏览器缓存可能会带来安全挑战。但是,如果我从部署站点的服务器中清除仅与我的域 (www.example.com) 相关的浏览器缓存怎么办?

我的要求是我应该能够根据需要从浏览器缓存中清除 .js、.css 和 .jpg 文件。我当前的框架没有设置为实现基于令牌的查询字符串,以便每个服务器端更改都反映在这些资源的 url 中,使浏览器相信它是一个新资源。当然,我可以做所有艰苦的工作来改变我的框架以反映这种变化,但我想知道是否已经有一种既定的方法来实现这一点。

如果重要的话,那么我的环境是基于 Windows 平台的(ASP.Net MVC、IIS)。

【问题讨论】:

    标签: javascript asp.net-mvc iis browser-cache


    【解决方案1】:

    当然,我可以尽一切努力改变我的框架以反映 这种变化,但想知道是否已经有一个既定的方法 实现这一目标。

    不,你不需要做所有的努力。 Microsoft ASP.Net Web Optimization framework 会处理的。您唯一需要做的就是创建适当的捆绑包并将它们注册到 Global.asax。

    创建捆绑包 -

    public class BundleConfig
    {
        public static void RegisterBundles(BundleCollection bundles)
        {
            ScriptBundle bundle = new ScriptBundle("~/bundles/jquery");
            bundle.Include("~/Scripts/jquery-{version}.js");
            bundle.Include("~/Scripts/_references.js");
    
            bundles.Add(bundle);
        }
    }
    

    然后在Global.asax中注册——

    BundleConfig.RegisterBundles(BundleTable.Bundles);
    

    在浏览器中呈现时,JQuery 包将在其 URL 中包含版本。

    <script src="/bundles/jquery?v=PsWsn1syKMUFBUcJusJPfq6HqYqANhiRR1uZJvzFJ-c1"></script>
    

    如果您更改 JQuery 文件中的某些代码,则会为捆绑包分配一个新的版本号。

    这种方法将负责浏览器在更改时获取更新的文件。

    【讨论】:

      【解决方案2】:

      使用 .htaccess 防止浏览器缓存

       <FilesMatch "\.(html|htm|js|css)$">
         FileETag None
        <ifModule mod_headers.c>
         Header unset ETag
         Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
         Header set Pragma "no-cache"
         Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
        </ifModule>
      

      希望对您有所帮助.htaccess

      【讨论】:

      • "如果重要的话,那我的环境是基于Windows平台的(ASP.Net MVC, IIS)"...
      猜你喜欢
      • 2017-06-21
      • 1970-01-01
      • 2011-02-04
      • 2012-02-01
      • 2021-01-25
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      相关资源
      最近更新 更多