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

rob*_*nnn 4 service-worker

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

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

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

Jef*_*ick 12

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

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

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

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