2011-01-31 65 views
11

当利用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) 
+0

我相信第二个作品。查看[使用应用程序缓存离线](http://html5doctor.com/go-offline-with-application-cache/)以获取更多示例。 – 2011-01-31 21:57:53

回答

15

不幸的是,第三个例子是正确的 - 列表中的每个文件分别。在发布问题时,html5 doctor article不正确,此后已被修改。
通配符*只允许在“网上白名单”部分:

NETWORK: 
* 

它允许下载的任何所需的文件,而你正在浏览网上,如果尚未下载(按照正常)。
也有后退部分的“页面路径模式”:

FALLBACK: 
//offline.html 

这有点儿像一个通配符。最初的/将与您网站上每个页面的路径相匹配,因此任何未在缓存中找到的页面都将使用/offline.html作为替换回退。 (注意两个斜杠之间的空格)

1

我想你可以通过在PHP文件的帮助下构建.manifest(或.cache)文件来实现'通配符'。通过这种方式,您可以让PHP通过扫描每个文件名的echo'ing目录来处理维护文件名的麻烦。可能最好是让PHP在您的服务器上放置一个.manifest文件,否则离线应用程序可能会认为清单文件已更新并不断刷新缓存。

相关问题