有没有办法预先处理文件夹及其子文件夹中的所有文件?
我想要完成的是这样的事情:
...
event.waitUntil(
caches
.open(version + 'fundamentals')
.then(function (cache) {
return cache.addAll([
"/",
"/images/*"
...
答案 0 :(得分:12)
在服务工作者的上下文中执行的JavaScript将不了解您的文件系统。
如果您希望预先缓存与特定通配符模式匹配的所有文件,那么当正在执行的代码可以访问您的文件系统时,您需要添加一些构建时工具。然后,构建时工具可以将输出提供给服务工作者的JavaScript文件,理想情况是通过一些模板系统。
sw-precache
工具可以为您自动完成此过程,包括生成服务工作者的JavaScript并使您的缓存保持最新状态,因为本地文件系统中的静态资产会发生变化。
如果您选择不使用预先打包的解决方案,例如sw-precache
,请确保您了解服务工作者install
/ activate
生命周期事件,并确保您正确版本化您的静态资源和缓存。