【问题标题】:Cache manifest offline app not refreshing javascript files in Chrome缓存清单离线应用程序不刷新 Chrome 中的 javascript 文件
【发布时间】:2011-08-17 17:42:18
【问题描述】:

我正在使用缓存清单文件开发离线网络应用程序。我无法刷新我的 javascript 文件。如果我更改了一个 .js 文件(在清单文件中列出),然后我更改了清单文件版本号。并保存它,然后更改的 .js 文件不会在客户端上重新加载。我需要做什么才能让 .js 文件刷新?

谢谢

【问题讨论】:

    标签: javascript manifest offline


    【解决方案1】:

    这是因为网络服务器告诉浏览器缓存静态文件几个小时。因此浏览器不知道清单文件已更改。您可以清除所有应用程序数据'或'配置 Web 服务器清单不可缓存...

    阅读http://diveintohtml5.info/offline.html了解更多信息

    如果您想清除 chrome 上的应用缓存,请使用 chrome://appcache-internals/ 手动搜索 C:\Documents and Settings\YOURUSERNAME\Local Settings\Application Data\Google\Chrome\User Data\Default\Cache

    【讨论】:

      【解决方案2】:

      我假设如果您使用缓存清单然后刷新清单,浏览器会再次请求所有文件。但是,我发现我需要在清单中的所有文件中显式设置标头,以告诉浏览器不要缓存这些文件。我相信一旦清单告诉浏览器再次请求文件,浏览器就会像对待任何其他非清单缓存文件一样对待它。也许这是 Chrome 的错误,但我觉得我在另一个 WebKit 浏览器中看到了这个。

      无论如何,请将清单中文件的标头设置为从不缓存,并且在更新清单时它们应该重新加载。如果这些文件在清单页面之外使用,您可能需要根据需要实际缓存这些文件。

      【讨论】:

      • 我遇到了同样的行为。在我的实验中,我注意到在这种情况下,使用 Rack 和 WEBrick,Chrome 27 会正确重新加载 html 文件(不管缓存标头如何),但需要禁用 JavaScript 文件的缓存。相反,即使使用默认缓存,Firefox 21 也会正确重新加载 JavaScript 文件。对于 Chrome,您可以在 github.com/edymtt/cvsandbox/blob/master/config.ru 找到有效的 config.ru
      【解决方案3】:

      我遇到了同样的问题,直到我在 Mozilla Developer site

      重要提示:不要在缓存清单中指定清单本身 文件,否则几乎不可能通知浏览器 新清单可用。

      哎呀。我的错。

      但是,每次我在代码中更改某些内容时,我都需要在清单中更改某些内容,然后重新加载两次,这是一个不相关的问题。

      【讨论】:

        【解决方案4】:

        在地址栏中输入chrome://appcache-internals,然后点击回车

        将出现一个缓存清单列表,然后删除您想要的清单,当您再次加载页面时,所有内容都会刷新。

        希望这会有所帮助:)

        【讨论】:

          【解决方案5】:

          就我而言,我必须使用元标记禁用传统的浏览器缓存。请参阅this SO question 怎么做

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-12
            • 2011-08-02
            • 1970-01-01
            • 2012-06-12
            相关资源
            最近更新 更多