Appcache无法正常工作

时间:2014-02-21 13:54:58

标签: html5 html5-appcache offline-caching

我有一个小型的webapp,我正在研究HTML5的appcache(离线缓存)功能。 以下是我的清单文件代码: 文件名:Manifest1.appcache

CACHE MANIFEST 

 #21/02/14

CACHE:

Login.htm

.........

在我的Login.htm中我只有简单的文字显示,而且我在html开始标记中有manifest="Manifest1.appcache"

我已经在IIS上部署了它,并且在IIS启动时工作正常,当我停止IIS时,我可以访问此页面一次,然后我获得404.它触发(Application Cache Obsolete event)。我不知道为什么,请帮忙。

2 个答案:

答案 0 :(得分:2)

不确定是不是这样。但是我的清单文件出了问题,而且文件名拼写不正确。您是否尝试过验证清单文件以确保所有文件拼写正确?

以下是一个很好的工具:http://manifest-validator.com/validate放入缓存清单的网址,例如http://www.yoursite.com/manifest.appcache

我犯了一些错误,我意外地没有在图像路径中包含文件夹。这个工具很好地发现了这些错误。此外,如果您正在使用Grunt,则会有一个名为grunt manifest的繁琐任务,它将自动构建清单文件以避免拼写错误等。 https://github.com/gunta/grunt-manifest

答案 1 :(得分:1)

只要设备处于联机状态(或者至少看起来像浏览器那样),就会触发obsolete事件,但无法检索清单文件。因此,关闭服务器并不能模拟正常脱机,因为浏览器仍然认为它在线(它​​是),但它无法检索清单文件,这对于浏览器来说就像你有删除了清单,因此关闭服务器不是你应该如何测试它。模拟离线的最佳方法是......离线!关闭设备上的wifi,然后一切都运行正常。

还要确保您的服务器配置为使用.appcache MIME类型提供text/cache-manifest个文件,某些浏览器需要这样做。