我一直在试图找出HTML5的新AppCache,但我觉得这里非常有限。
假设我有一个四页的网站:
index.html
about.html
portfolio.html
contact.html
我有上述资源概述在马尼菲斯特,连同网站的所有资源。清单如下:
CACHE MANIFEST
# 2013-05-23 2:33 PM
# Master Manifest
index.html
about.html
portfolio.html
contact.html
styles/reset.css
styles/styles.css
NETWORK:
*
我已经将appcache文件类型添加到服务器配置中,并在上面列出的每个页面上使用了正确的HTML标记属性。为了便于记录,元素看起来是这样的:
<html lang="en" manifest="example.appcache">
我已经在我的移动设备上测试了这个设置,一切都很好。。。除非我不加载每一页。似乎我必须进入每个页面并通过我的移动浏览器缓存它,之后我可能会关闭数据并脱机,以便我的设备能够浏览APPCACHE的网站。
但是,这里是我的问题-我如何设置AppCache以允许我转到index.html,缓存该页面,并缓存清单中的其余资源?不需要访问和手动缓存每个资源?
如果你做不到,那我就不得不问了;这不是在某种程度上挫败了AppCache和离线可访问性背后的想法吗?
非常感谢大家的帮助!:)
最佳答案
你不应该每一页都浏览。我知道你说过你在Apache中设置了MIME类型,但是你百分之百确定它工作正常吗?
您可以通过在浏览器中打开清单并在Chrome Web检查器的“网络”选项卡中检查响应头来进行检查:Content-Type
应该text/cache-manifest
如果没有访问站点的权限,调试会有点困难,但以下是一些说明,说明如何使用AppCache解释Chrome的Web Inspector中发生的情况,以帮助您自己调试问题:
“资源”选项卡将显示应用程序缓存的内容和状态。它在下载文件时看起来是这样的:
控制台在下载时也会记录事件:Application Cache Progress event (0 of 48) http://cachedfile.url
下载完成后,将如下所示并显示缓存文件的列表:
当您返回时,它将记录三个事件(假设没有任何更改):Document was loaded from Application Cache with manifest http://manifest.url
Application Cache Checking event
Application Cache NoUpdate event
然后当你离线时,它看起来是这样的:
希望在控制台和appcache表之间,您能够找出发生了什么。