2011-01-31 103 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文件,否則離線應用程序可能會認爲清單文件已更新並不斷刷新緩存。

相關問題