У меня есть приложение Angular 6, которое работает нормально, но только до тех пор, пока я не опубликую обновление.
Работник службы запрашивает старую версию скрипта времени выполнения [hash] .js. Это нормально? Насколько я понимаю, сервисный работник должен запрашивать сценарии, как определено в ngsw.config, и использовать в нем хэш-таблицу, чтобы определить, необходим ли запрос ресурса с сервера.
Кроме того, моя (упрощенная) маршрутизация приложений выглядит следующим образом:
{
path: 'login',
component: LoginComponent
},
{
path: 'logout',
component: LogoutComponent
},
{
path: 'error',
component: ErrorComponent
},
{
path: '**',
pathMatch: 'full',
component: PageNotFoundComponent
}
Похоже, это усугубляет проблему, так как кажется, что вступает в действие универсальный маршрут, который направляет к PageNotFoundComponent. Например, если я запрашиваю сценарий, который не существует, я получаю PageNotFoundComponent.
Это вызывает неожиданную ошибку токена '<' в браузере (я полагаю, откуда тег сценария фактически ожидает некоторый сценарий, а не HTML-код страницы 404). </p>
Почему угловая маршрутизация здесь играет роль? Если я запрашиваю сценарий, который существует, я получаю возвращенное содержимое сценария (так что маршрутизация, по-видимому, на него не влияет), но только когда он этого не делает, я получаю страницу 404.
редактировать
Просто добавлю, я прикрепляю ответ от запроса к ngsw.json. Это показывает хэш-таблицу сценариев / ресурсов. Там я вижу только одну, самую последнюю копию runtime.js.
