我在同一个域上运行了2个 react apps
(用create-react-app引导) . 一个应用程序在根目录( mydomain.com
)上提供,另一个在子文件夹( mydomain.com/path
)中提供 . 捆绑包使用nginx静态提供 .
当我转到 mydomain.com
时,注册了根应用程序的服务工作者,并且在进一步访问时从缓存中加载 index.html
. 当我访问 mydomain.com/path/
时,第二个应用程序的服务工作者已注册,并且在进一步访问时会从缓存中加载相应的 index.html
.
问题是,当我访问 mydomain.com/path
( without a trailing slash )时,根上的应用程序的服务工作者加载其index.html,并基本上覆盖为子文件夹注册的服务工作者( /path
) . 但是,如果我访问 mydomain.com/path/
( with a trailing slash ),它工作正常,并且子文件夹的服务工作者负责 .
我不确定这是否是服务工作者的预期行为 . 如果是,如何在不使用尾部斜线的情况下使其工作? (我已经尝试在注册子文件夹的服务工作者时明确设置范围)
1 回答
我担心这是当前浏览器处理不好的边缘情况 .
但是,修改根路径上的service-worker并不困难,只有在路径不是
/path
时它才处于活动状态 .