【发布时间】:2011-08-17 17:42:18
【问题描述】:
我正在使用缓存清单文件开发离线网络应用程序。我无法刷新我的 javascript 文件。如果我更改了一个 .js 文件(在清单文件中列出),然后我更改了清单文件版本号。并保存它,然后更改的 .js 文件不会在客户端上重新加载。我需要做什么才能让 .js 文件刷新?
谢谢
【问题讨论】:
标签: javascript manifest offline
我正在使用缓存清单文件开发离线网络应用程序。我无法刷新我的 javascript 文件。如果我更改了一个 .js 文件(在清单文件中列出),然后我更改了清单文件版本号。并保存它,然后更改的 .js 文件不会在客户端上重新加载。我需要做什么才能让 .js 文件刷新?
谢谢
【问题讨论】:
标签: javascript manifest offline
这是因为网络服务器告诉浏览器缓存静态文件几个小时。因此浏览器不知道清单文件已更改。您可以清除所有应用程序数据'或'配置 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
【讨论】:
我假设如果您使用缓存清单然后刷新清单,浏览器会再次请求所有文件。但是,我发现我需要在清单中的所有文件中显式设置标头,以告诉浏览器不要缓存这些文件。我相信一旦清单告诉浏览器再次请求文件,浏览器就会像对待任何其他非清单缓存文件一样对待它。也许这是 Chrome 的错误,但我觉得我在另一个 WebKit 浏览器中看到了这个。
无论如何,请将清单中文件的标头设置为从不缓存,并且在更新清单时它们应该重新加载。如果这些文件在清单页面之外使用,您可能需要根据需要实际缓存这些文件。
【讨论】:
config.ru
我遇到了同样的问题,直到我在 Mozilla Developer site
重要提示:不要在缓存清单中指定清单本身 文件,否则几乎不可能通知浏览器 新清单可用。
哎呀。我的错。
但是,每次我在代码中更改某些内容时,我都需要在清单中更改某些内容,然后重新加载两次,这是一个不相关的问题。
【讨论】:
在地址栏中输入chrome://appcache-internals,然后点击回车
将出现一个缓存清单列表,然后删除您想要的清单,当您再次加载页面时,所有内容都会刷新。
希望这会有所帮助:)
【讨论】:
就我而言,我必须使用元标记禁用传统的浏览器缓存。请参阅this SO question 怎么做
【讨论】: