reactjs - Service Worker 范围不匹配
问题描述
我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
解决方案
出于安全原因,Service Worker 只能管理其自身路径下的范围。如果您希望它处理主机上的所有请求,您需要将 csw.js 移动到根文件夹。或者,您可以在 csw.js 路径上设置 HTTP 标头Service-Worker-Allowed: /
(假设您的主机允许您这样做)
推荐阅读
- java - Java SimpleDateFormat 系统之间的不同行为
- sql - 用一个选择 sql 转置
- python - >= 在浮点数和字符串值之间的 TypeError
- flutter - 如何在返回特定屏幕之前调用方法
- reactjs - 如何在反应 dom 测试工具中等待一个元素?
- node.js - 预发布未在 npm install 中运行
- javascript - Firebase使用角度获取基于特定字段的文档集合
- python - 将 resize 替换为 cv2.INTER_AREA 等效模糊或其他内容
- php - 树行为使 lft 和 rght 为空
- swift - 在 MacOS 上使用 swift 使用 XPC 使用 IPC 的最简单客户端服务器示例代码