Я використовую Angular-CLI 1.6.6
і @angular/service-worker 5.2.5
в нашому Angular 5.2.5
додатку. На локальному полегшеному сервері, а також на робочому сервері все чудово працює, за винятком одного повідомлення про помилку, яке з’являється у нашому виробничому середовищі:
Не вдалося завантажити ресурс: сервер відповів статусом 504 (Час очікування шлюзу)
Переглядаючи ngsw-worker.js
сценарій, я знайшов рядки (2466 нижче), де генерується повідомлення про помилку вище:
async safeFetch(req) {
try {
return await this.scope.fetch(req);
}
catch (err) {
this.debugger.log(err, `Driver.fetch(${req.url})`);
return this.adapter.newResponse(null, {
status: 504,
statusText: 'Gateway Timeout',
});
}
}
Помилка реєстрації консолі в уловленні видає таку помилку:
TypeError: Failed to execute 'fetch' on 'ServiceWorkerGlobalScope': 'only-if-cached' can be set only with 'same-origin' mode
at Driver.safeFetch (ngsw-worker.js:2464)
at Driver.handleFetch (ngsw-worker.js:1954)
at <anonymous>
Помилка, яка, здається, пов’язана з цим запитанням: Що призводить до невдалого виконання 'fetch' у 'ServiceWorkerGlobalScope': 'only-if-cached' можна встановити лише з помилкою режиму 'same-origin'?
Запит, що генерує цю помилку, - це будь-який перший доступ до програми:
https://example.com/test/#/connect
https://example.com/test/#/map?token=[accestoken]
...
Під час перезавантаження програми помилка не повторюється.
Хтось може мені допомогти? Чи є помилка в safeFetch()
службі (можливо, для підтримки HashLocationStrategy)? Чи потрібно щось змінювати у своєму конфігурі?