Workbox缓存策略不生效,为什么离线还是加载不了页面?
我用Workbox的staleWhileRevalidate策略缓存了首页和静态资源,但手机断网后刷新页面还是白屏,控制台也没报错。是不是注册顺序有问题?
我的sw.js是这样写的:
import { registerRoute } from 'workbox-routing';
import { StaleWhileRevalidate } from 'workbox-strategies';
registerRoute(
({ request }) => request.destination === 'document',
new StaleWhileRevalidate()
);
而且service worker状态显示已激活,缓存里也能看到文件,但就是离线打不开,到底漏了哪一步?
改成这样:
核心就两点:加
precacheAndRoute预缓存,页面用CacheFirst而不是 StaleWhileRevalidate(页面不需要实时更新,CacheFirst 更适合)。