强制applicationCache重新加载缓存的文件
我正在使用HTML5 applicationCache来存储页面的许多Javascript,CSS,图像等文件。如果我更新其中一个文件,浏览器永远不会重新加载它。我尝试过以下方法:
在页面加载时调用applicationCache.update()
侦听applicationCache的updateready事件,并调用swapCache()和window.location.reload()
向清单文件本身添加时间戳注释以强制浏览器实现清单已更改
当然这不可能是这么难。如何说服浏览器重新请求一些缓存文件?
没有找到相关结果
已邀请:
5 个回复
豪抱怒掳
)提供清单。您是否正确配置了服务器?检查此问题的最简单方法是在Chrome中打开该页面,然后在AppCache下的控制台和资源标签中查看是否存在错误(它会报告错误地提供文件。您也可以使用curl -I命令:
您的清单文件也可能会被缓存(您可以设置它的expires标头立即过期)。还要记住重新加载顺序:您的页面将首先从AppCache加载(如果它在那里),然后浏览器检查清单文件是否更新。如果是,请下载并放置在新版本的缓存中,但这不会自动更新页面(也不会
),您将不得不再次刷新页面(至少)。 有关该主题的更多信息,另请参阅此演示文稿。
厢界山攀
校勒魏寡
翱抹村
在/etc/nginx/nginx.conf中:
expires -1行导致缓存标头设置为no-cache。 另外,为了清除我使用的Firefox 23中的缓存: Firefox->选项 - >选项 - >高级 - >网络:离线Web等 - >立即清除 并查看从服务器获取的内容: Firefox-> Web选项 - >工具 - >网络选项卡
辽躺
为.manifest添加Content-Type
应该这样做,否则浏览器将为您设置的任何缓存默认缓存清单本身,因此检查清单的请求将检索缓存副本。 之后,然后更改清单文件中的字符,下一个请求应该获取一个新的清单。 你没有说你正在运行什么服务器,但是我为从S3存储桶托管的文件做了这个并且这样做了,S3通常会缓存24小时。