我正在使用缓存清单文件处理离线网络应用。我无法刷新我的javascript文件。如果我更改.js文件(清单文件中列出),然后我更改清单文件版本号。并保存它,然后更改的.js文件不会在客户端上重新加载。如何让.js文件刷新?
由于
答案 0 :(得分:12)
那是因为网络服务器告诉浏览器缓存静态文件几个小时。因此浏览器不知道清单文件已更改。您可以清除所有应用程序数据'或'配置清单不可缓存的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
答案 1 :(得分:4)
我假设你使用缓存清单然后刷新清单,浏览器会再次请求所有文件。但是,我发现我需要在清单中的所有文件中显式设置标头,以告知浏览器不要缓存文件。我相信,一旦清单告诉浏览器再次请求文件,浏览器就像任何其他非清单缓存文件一样对待它。也许这是Chrome的错误,但我觉得我在另一个WebKit浏览器中看到了这个。
无论如何,将清单中文件的标头设置为永不缓存,并在更新清单时重新加载。如果在清单页面之外使用这些文件,则可能需要根据需要实际缓存文件。
答案 2 :(得分:3)
在地址栏中输入chrome://appcache-internals
,然后点击ENTER
将显示缓存清单列表,然后只删除您想要的清单,并在您再次加载页面时刷新所有内容。
希望这会有所帮助:)
答案 3 :(得分:1)
我遇到同样的问题,直到我遇到这个无价的警告 Mozilla Developer site
重要说明:请勿在缓存清单中指定清单本身 文件,否则通知浏览器几乎是不可能的 新的清单可用。
woops。我的错。
但是,每当我更改代码中的某些内容时,我需要更改清单中的内容,然后重新加载两次,这是一个无关的问题。
答案 4 :(得分:0)
就我而言,我必须使用元标记禁用传统的浏览器缓存。请参阅this SO question如何