新的HTML5 manifest.cache文件是否包含目录路径?
问题描述:
当利用HTML5功能指定文件是否被缓存(在manifest.cache文件中)时,是否指定了可能的整个目录?我可以放置一个路径到我的images目录下的CACHE:部分,并将其应用于该目录中的所有文件,还是我需要显式指定要缓存的图像文件?新的HTML5 manifest.cache文件是否包含目录路径?
换句话说,这是可能的吗?
CACHE MANIFEST
...
CACHE:
images/
...或者这个?
CACHE MANIFEST
...
CACHE:
images/*
...还是我必须这样做:
CACHE MANIFEST
...
CACHE:
images/logo.png
images/image01.jpg
images/image02.jpg
images/image03.jpg
... (etc)
答
不幸的是,第三个例子是正确的 - 列表中的每个文件分别。在发布问题时,html5 doctor article不正确,此后已被修改。
通配符*只允许在“网上白名单”部分:
NETWORK:
*
它允许下载的任何所需的文件,而你正在浏览网上,如果尚未下载(按照正常)。
也有后退部分的“页面路径模式”:
FALLBACK:
//offline.html
这有点儿像一个通配符。最初的/将与您网站上每个页面的路径相匹配,因此任何未在缓存中找到的页面都将使用/offline.html作为替换回退。 (注意两个斜杠之间的空格)
答
我想你可以通过在PHP文件的帮助下构建.manifest(或.cache)文件来实现'通配符'。通过这种方式,您可以让PHP通过扫描每个文件名的echo'ing目录来处理维护文件名的麻烦。可能最好是让PHP在您的服务器上放置一个.manifest文件,否则离线应用程序可能会认为清单文件已更新并不断刷新缓存。
我相信第二个作品。查看[使用应用程序缓存离线](http://html5doctor.com/go-offline-with-application-cache/)以获取更多示例。 – 2011-01-31 21:57:53