我正在尝试为iPad构建一个离线Web应用程序,我正在尝试验证Apache Web Server 2正在正确提供cache.manifest,并且正在运行。我已经为.manifest扩展添加了一个'AddType'到Apache Web服务器的mime-types配置文件。
如果我查看访问日志,则返回对cache-manifest的第一个请求,其中包含200个HTTP响应代码,任何进一步的请求都将通过304提供,即“未修改”。我认为这意味着它正在发挥作用。资产(html,图像)返回两者的组合(200,然后如上所述304),因此表明它正在工作。
当我将它加载到iPad上时,我得到了该页面,但是当我离线并重新加载时无法加载,因为它没有连接到互联网。
我在Mac的Apache网络服务器上提供服务,因此无法用我的Mac可靠地测试它。关于出了什么问题或如何验证它的任何想法都有效?
答案 0 :(得分:0)
一般来说,测试缓存清单有点痛苦,但有一些有用的技术。
首先,直接在Mac上使用Safari进行测试。如果要在离线模式下检查Apache,请关闭Apache。
在Safari中,打开“活动”监视器并查找列为“已取消”的所有资源 - 这些资源通常是清单中缺少的资源。
还可以使用Web Inspector检查清单文件的响应类型。
在大多数情况下,问题是您在应用程序中拥有未在清单中指定的资源;这会导致整个缓存操作失败。不幸的是,HTML5 API中没有方法列出哪些资源失败;这对开发人员来说是非常有帮助的。