service-worker - 预缓存文件夹和子文件夹内容

标签 service-worker

有没有办法预缓存文件夹及其子文件夹中的所有文件?

我想要完成的是这样的:

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

最佳答案

在 Service Worker 上下文中执行的 JavaScript 不会了解您的文件系统。

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

sw-precache 工具可以为您自动执行此过程,包括生成 Service Worker 的 JavaScript 并在本地文件系统中的静态 Assets 更改时使缓存保持最新。

如果您选择不使用像 sw-precache 这样的预打包解决方案, 确保你了解 service worker install/activate生命周期事件,并且您正在正确地对静态资源和缓存进行版本控制。

关于service-worker - 预缓存文件夹和子文件夹内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028212/

相关文章:

javascript - Service Worker 从缓存中获取然后更新缓存

javascript - Workbox 缓存策略无法正常工作

javascript - 如何通过 Create React App 在开发模式下使用 Service Worker?

javascript - Angular7:服务 worker 未按预期运行

javascript - 从 service worker 访问 localStorage

reactjs - 停止在 webpack-dev-server 中构建 Service Worker 的工作箱

javascript - 子目录中的服务 worker ,但我希望范围是根目录

reactjs - 为什么 React PWA 在离线时根据路由重新获取延迟加载 block

firebase 设置后台消息处理程序

javascript - 请求 header 不是从 Service Worker 发送的