2016-05-04 132 views
3

有沒有辦法預先緩存文件夾及其子文件夾中的所有文件?預緩存文件夾和子文件夾內容

我想要完成的任務是這樣的:

... 
event.waitUntil(
     caches 
     .open(version + 'fundamentals') 
     .then(function (cache) { 
      return cache.addAll([ 
       "/", 
       "/images/*" 
... 

回答

9

中的JavaScript在服務工作者的上下文中執行不會有你的文件系統的知識。

如果您想要預緩存符合特定通配符模式的所有文件,那麼當正在執行的代碼可以訪問文件系統時,您需要添加一些編譯時工具。構建時工具然後可以將輸出饋送到服務工作人員的JavaScript文件中,理想情況下通過一些模板系統。

sw-precache工具可以爲您自動執行此過程,包括生成服務工作人員的JavaScript並隨着您的本地文件系統中的靜態資產發生更改而使您的緩存保持最新狀態。

如果您選擇不使用預打包的解決方案一樣sw-precache,請確保您瞭解服務人員install/activate生命週期事件,並確定您正確版本您的靜態資源和緩存。