有没有办法预缓存文件夹及其子文件夹中的所有文件?
我想要完成的是这样的:
...
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/