Reactjs 服务工作者在同一域上有2个react应用程序出现意外行为

Reactjs 服务工作者在同一域上有2个react应用程序出现意外行为,reactjs,service-worker,create-react-app,Reactjs,Service Worker,Create React App,我有两个react应用程序(通过引导)在同一个域上运行。一个应用程序位于根目录(mydomain.com)中,另一个应用程序位于子文件夹(mydomain.com/path)中。捆绑包是使用nginx静态提供的 当我转到mydomain.com时,根应用程序的服务人员已注册,并且在进一步访问时从缓存加载index.html。当我访问mydomain.com/path/时,将注册第二个应用程序的服务人员,并在进一步访问时从缓存中加载相应的index.html 问题是,当我访问mydomain.co

我有两个
react应用程序
(通过引导)在同一个域上运行。一个应用程序位于根目录(
mydomain.com
)中,另一个应用程序位于子文件夹(
mydomain.com/path
)中。捆绑包是使用nginx静态提供的

当我转到
mydomain.com
时,根应用程序的服务人员已注册,并且在进一步访问时从缓存加载
index.html
。当我访问
mydomain.com/path/
时,将注册第二个应用程序的服务人员,并在进一步访问时从缓存中加载相应的
index.html

问题是,当我访问
mydomain.com/path
不带尾随斜杠)时,根目录上应用程序的服务人员加载其index.html,并基本上覆盖为子文件夹注册的服务人员(
/path
)。但是,如果我访问
mydomain.com/path/
带尾随斜杠),并且由子文件夹的服务人员负责,则可以正常工作


我不确定这是否是服务人员的预期行为。如果是,我如何使它工作而不必使用尾部斜杠?(我在为子文件夹注册service worker时已尝试显式设置作用域)

我担心这是一个当前浏览器无法很好处理的边缘情况

但是,修改根路径上的服务工作进程并不困难,这样,只有当路径不是
/path
时,它才处于活动状态

if( !self.location.pathname.startsWith('/path') ) {
    // Do root service-worker stuff
}