首页 > 解决方案 > Workbox 的预缓存何时生效?

问题描述

我有一个错误;预缓存我的静态文件的worbox,例如js或者css;此时我设置workbox.routing.registerRoute是不工作的;</p>

代码

服务器工作缓存

刷新后文件不在缓存中

如果我删除workbox precaching(一定要确定server worker缓存文件),刷新后文件是从缓存中;</p>

删除工作箱预缓存

标签: javascriptworkbox

解决方案


在注册的 service worker 控制当前页面之前,响应不会来自 service worker。根据您测试事物的方式,在您关闭所有之前为您的来源打开的选项卡之前,这可能不会发生。

您可以在“服务工作者生命周期”中了解更多信息。

我建议使用 Chrome 隐身窗口从头开始,完成 SW 注册,然后重新加载该隐身标签。此时,新注册的 SW 应该控制页面,并且您应该看到您的预缓存 JavaScript 正在用于满足子资源请求。

一般来说,如果您在同一个服务工作者中使用 Workbox 预缓存和运行时路由,并且您列出您首先调用预缓存(这就是您正在执行的操作),那么预缓存将优先。


推荐阅读