小樱 发表于 2024/7/3 00:20

service worker chrome谷歌浏览器缓存使用国内cdn公共库加速访问报错sw.js Failed to register

service worker chrome谷歌浏览器缓存使用国内cdn公共库加速访问报错sw.js Failed to register

想把 vendor.js 和 app.js 放在CDN加速,源站服务器就算更新了一个字符,那么整个网站版本会发生改变,用户要重新下载两个巨大的js,要耗费大量源站流量,所以就产生了这个帖子的问题,把js文件放在CDN下,然后页面加载会引起一个CDN跨域行为

错误信息
Uncaught (in promise) DOMException: Failed to register a ServiceWorker: The origin of the provided scriptURL ('https://app.baidu.com') does not match the current origin ('http://localhost/').
(匿名) @ index:1

页面正常,但是无法注册sw缓存,只能使用普通的浏览器缓存

网上查找解决办法
Service-Worker-Allowed 发现不可行,因为这个头是设置存放在不同目录,而不是域名

解决办法, 直接修改 sw.js 的尾巴加个参数,例如 sw.js?1




为什么使用sw,因为正常情况下现在显示是磁盘缓存,一旦使用 sw 加速后则是service worker缓存


页: [1]
查看完整版本: service worker chrome谷歌浏览器缓存使用国内cdn公共库加速访问报错sw.js Failed to register