Angular Service Worker - Не вдалося завантажити ресурс: сервер відповів статусом 504 (Час очікування шлюзу)


86

Я використовую 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)? Чи потрібно щось змінювати у своєму конфігурі?


9
Здається, багато людей стикаються з цією проблемою. github.com/angular/angular/issues/20756 github.com/angular/angular/issues/20970 і т. д. Не те, що це будь-яка допомога, але, схоже, це розглядається відповідно до проекту angular
angular

1
Будь ласка, надайте ПОВНІ джерела (або ще краще, стекбліц, будь ласка :)
yomateo

Чи можете ви надати знімок екрана на вкладці мережі, на якому показано 504?
Даніель Хабеніхт,

2
З цим питанням було проведено певну роботу . @tobik це все ще проблема?
Джонірас,

Відповіді:


1

Вимкнення заголовка ETag із серверної мережі тимчасово вирішило цю проблему.


Ви можете, будь ласка, детально розробити свою відповідь, де я можу знайти цей ETag у кутовій програмі.
vndpal

Ви повинні це зробити у внутрішній конфігурації.
Тібін Томас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.