Я столкнулся с серьезной проблемой в PWA, которую я сейчас поддерживаю:
Проблема в том, что PWA не устанавливается в производственной среде. В то время как на моей локальной машине все работает нормально (проверено с http-сервером на localhost)
PWA состоит из приложения angular 8. ServiceWorker был настроен с @angular/pwa package
.
. Особенность рабочей среды заключается в том, что приложение работает за обратным прокси-сервером. Таким образом, само приложение размещается на внутренней корпоративной машине (недоступно извне корпоративной сети). Обратный прокси-сервер предоставляет доступ к приложению извне, а также добавляет HTTPS (на внутренней машине есть только http). Приложение вызывается извне с этим URL: https://example-corp.com/appname
Внутренний доступ к приложению осуществляется с помощью http://<internal-ip>/
Базовая ссылка приложения angular имеет значение <base href="/appname/">
Доступ осуществляется через внешний адрес, работник службы работает правильно, в соответствии с chrome dev инструментов. Файл manifest.webmanifest также загружается. Прилагаемые значки приложений из webmanifest правильно отображаются в инструментах chrome dev. Инструменты разработчика также заявляют, что страница защищена https. Итак, все должно быть хорошо для установки.
Но возможность установки не предоставляется. Сообщение в явном виде. :
Не найден соответствующий работник службы
Я изменил start_url в манифесте на "appname", но безуспешно. Ngsw-worker. json и webmanifest хранятся в каталоге root приложения.
Есть ли способ получить больше информации / отладочной информации о том, что неправильно или не полностью заполнено для установки?
manifest.webmanifest:
{
"name": "App-Name",
"short_name": "App",
"theme_color": "#fafafa",
"background_color": "#824CFF",
"display": "standalone",
"scope": "/",
"start_url": "/",
"icons": [ <omitted> ]
}
Я предполагаю, что проблема заключается в использовании обратного прокси-сервера перед приложением или base-href, но я не могу его локализовать ...