我有一个小型的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)
。我不知道为什么,请帮忙。
答案 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
个文件,某些浏览器需要这样做。