预缓存文件夹和子文件夹内容

时间:2016-05-04 12:43:30

标签: service-worker

有没有办法预先处理文件夹及其子文件夹中的所有文件?

我想要完成的是这样的事情:

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

1 个答案:

答案 0 :(得分:12)

在服务工作者的上下文中执行的JavaScript将不了解您的文件系统。

如果您希望预先缓存与特定通配符模式匹配的所有文件,那么当正在执行的代码可以访问您的文件系统时,您需要添加一些构建时工具。然后,构建时工具可以将输出提供给服务工作者的JavaScript文件,理想情况是通过一些模板系统。

sw-precache工具可以为您自动完成此过程,包括生成服务工作者的JavaScript并使您的缓存保持最新状态,因为本地文件系统中的静态资产会发生变化。

如果您选择不使用预先打包的解决方案,例如sw-precache,请确保您了解服务工作者install / activate生命周期事件,并确保您正确版本化您的静态资源和缓存。