Service Worker缓存策略下,React应用更新后旧资源如何清理?
在React项目里用了Service Worker做静态资源缓存,但最近部署新版本后,部分用户还是加载旧的JS文件。我按网上的方法在service-worker.js里设置了版本号:
// service-worker.js
const CACHE_VERSION = 'v1.1';
const FILES_TO_CACHE = [
'/',
'/static/js/main.chunk.js',
'/static/css/main.chunk.css'
];
但发现控制台报错”Uncaught SyntaxError: Unexpected token”,推测是旧缓存未清除。尝试过在注册时添加{updateOnExit: true},但重启浏览器后问题依旧存在,该怎么彻底替换旧缓存呢?
同时在主页面注册 SW 的地方加个时间戳强制更新: