【问题标题】:Force refresh of client browser强制刷新客户端浏览器
【发布时间】:2012-06-01 18:00:10
【问题描述】:

我对 javascript 文件添加了相当大的更改。但是,为了注册新的更改,我需要刷新浏览器。我想这对于使用该网站的所有其他人来说也是如此。

有没有办法让客户端的浏览器缓存失效,强制下载新的js文件?

【问题讨论】:

    标签: javascript http caching browser-cache


    【解决方案1】:

    你可以重命名文件,或者在加载文件时添加一个随机参数:

    <script src="/javascripts/application.js?version=4" type="text/javascript"></script>
    

    【讨论】:

      【解决方案2】:

      您可以在文件名中添加一个参数,例如

      <script src="script.js?rnd=2131231"></script>
      

      【讨论】:

        【解决方案3】:

        有一个非常全面的讨论here,有几种方法可以做到这一点。
        如果您的项目不够大或您不使用 apache,推荐的解决方案 (mod_pagespeed) 可能不是您的最佳解决方案,在这种情况下,我会推荐如下格式:

        <script src="/{sha_1_here}/script.js"></script>
        

        而不是 GET 参数,因为显然某些浏览器不会缓存带有参数的脚本。
        这应该适用于任何地方,您只需要重写 URL 服务器端。

        【讨论】:

          【解决方案4】:

          出于开发目的,我禁用了浏览器端的缓存,以便它始终获取。

          但是对于生产,要重置以便所有客户端用户的浏览器都应该下载新版本,您可以查看 apache 的设置以使缓存文件过期。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-07-13
            • 2013-12-05
            • 1970-01-01
            • 1970-01-01
            • 2018-08-24
            • 2022-12-05
            • 2015-07-30
            • 2019-12-03
            相关资源
            最近更新 更多