Странное поведение работника Angular PWA Service при развертывании - PullRequest
0 голосов
/ 08 января 2019

Этот вопрос занимал весь мой день, и я не могу понять, что происходит

Я вижу, что мой сервисный работник зарегистрирован, однако «иногда», когда я нажимаю офлайн в инструментах разработчика, ServiceWorker для моего домена просто исчезает !!

Но это главная проблема, когда я перезагружаю приложение, я вижу следующее поведение.

Вы можете видеть, что ngsw.json загружается дважды, а main.js загружается 3 раза! main.d3ae2084xxxx && main.bbe5073dxxxx && затем main.d3ae2084xxxx снова!

enter image description here

Если я проверю ответ на оба запроса ngsw.json, вы увидите, что оба показывают main.d3ae2084xxxx как правильную версию main.js, но он по-прежнему загружает main.bbe5073dxxxx ...

Первый запрос ngsw.json

enter image description here

Второй запрос ngsw.json

enter image description here

Что еще более расстраивает, так это фактическая загруженная версия - предыдущая main.bbe5073dxxxx ... !!!!

Если у кого-нибудь есть идеи, как это может происходить, пожалуйста, дайте мне знать.

Обновление ... Итак, узнал об этой превосходной маленькой конечной точке

https://you-app-url/ngsw/state 

Это даст вам много отладочной информации о вашем сервисном работнике.

В моем случае это

Состояние драйвера: EXISTING_CLIENTS_ONLY (ухудшено из-за сбоя инициализация: несоответствие хеша (cacheBustedFetchFromNetwork): https://dev -xxxx.net / main.eb8468bb3ed28f02d7c2.js : ожидается b5601102b721e0cf777691d327dc965d40d1c96e, получил 83c18fdb4a5942c964a31c119a57e0b8e16fe46e (после очистки кэша)

Похоже, что в моем случае это будет какая-то проблема CDN, и я уточню ответ, когда я точно знаю.

...