服务工作者范围不匹配
2019-12-17
844
我在公共文件夹中有
service-worker.js
。
当我注册服务工作者时,我必须说
navigator.serviceWorker.register('./public/csw.js')
但问题是现在服务工作者的范围设置为
http://localhost:2009/public
并且我想捕获
http://localhost:2009/
的获取请求
如果我尝试更改服务工作者的范围
navigator.serviceWorker.register('./public/csw.js',{scope:'/'})
这会产生错误,因为服务工作者是从其他目录中的文件调用的,即
root/src/index.js
我没有使用 CRA
1个回答
出于安全原因,Service Worker 只能管理
其自身路径下的范围
。如果您希望 csw.js 处理主机上的所有请求,则需要将其移动到根文件夹。或者,您可以在 csw.js 路径上设置 HTTP 标头
Service-Worker-Allowed: /
(假设您的主机允许您这样做)
dontcallmedom
2020-01-14