Неожиданное поведение работника службы с двумя реагирующими приложениями в одном домене - PullRequest
0 голосов
/ 27 сентября 2018

У меня 2 react apps (загруженный с create-реагировать-приложение ), работающий в том же домене.Одно приложение обслуживается в корне (mydomain.com), а другое - в подпапке (mydomain.com/path).Пакеты обслуживаются статически с помощью nginx.

Когда я перехожу на mydomain.com, работник службы для корневого приложения регистрируется и при дальнейших посещениях загружает index.html из кэша.Когда я захожу на mydomain.com/path/, сервисный работник для второго приложения регистрируется и при последующих посещениях загружает соответствующий index.html из кеша.

Проблема заключается в том, что при посещении mydomain.com/path ( беззавершающая косая черта ), работник службы для приложения в корне загружает его index.html и в основном переопределяет работника службы, зарегистрированного для подпапки (/path).Тем не менее, он работает нормально, если я посещаю mydomain.com/path/ ( с косой чертой ), и обслуживающий работник для подпапки берет на себя ответственность.

Я не уверен, что это ожидаемое поведениеобслуживающего работника.Если да, как я могу заставить его работать без использования косой черты?(Я уже пытался явно установить область при регистрации работника службы для подпапки)

1 Ответ

0 голосов
/ 27 сентября 2018

Боюсь, это крайний случай, когда современные браузеры не справляются хорошо.

Однако несложно изменить работника службы в корневом пути, чтобы он был активным, только если путь не /path.

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