Открытие одностраничного приложения pwa с использованием неосновного url-адреса в автономном режиме

Давайте возьмем пример PWA (прогрессивное веб-приложение), созданное с помощью фреймворка одностраничного приложения (SPA), такого как Angular - https://www.ngcolombia.com.

  1. Откройте сайт.
  2. Перейдите на другую страницу, например: https://www.ngcolombia.com/speakers.
  3. Перейдите в офлайн и нажмите перезагрузить - сайт не загрузится.

Если мы попытаемся выполнить перезагрузку с базового URL-адреса, это сработает, но в одностраничном приложении обычно выполняется перезагрузка с другой страницы с полным URL.

Как решить эту проблему, специфичную для SPA PWA?

Вы пробовали со стратегией useHash в роутере ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???? angular.io/guide/…

user4676340 10.08.2018 15:17

@trichetriche, мы используем PathLocationStrategy по умолчанию

cyberabis 10.08.2018 18:44

Что ж, постарайся не делать этого сейчас

user4676340 10.08.2018 20:19

Угадайте, что стратегия хеширования сработает, но пока продолжаем с предложением Джеффа ниже.

cyberabis 11.08.2018 10:49
1
4
1 431
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При использовании Архитектура оболочки приложения (что обычно имеет место в одностраничном приложении) обычно требуется, чтобы ваш работник службы отвечал на все запросы навигации, независимо от URL-адреса, с помощью кэшированного HTML-кода оболочки приложения.

Вы можете настроить сервис-воркера Angular для этого, используя опцию navigationUrls: https://angular.io/guide/service-worker-config#navigationurls

Этот подход не требует использования хэшей в ваших URL-адресах - вы можете продолжать использовать реальные URL-адреса и History API.

Спасибо, Джефф, похоже, это все. Проверим. Наш сервис-воркер построен с использованием рабочей панели, но я вижу, что в рабочей области есть аналогичная конфигурация для работы с одностраничными приложениями - developers.google.com/web/tools/workbox/modules/…

cyberabis 11.08.2018 10:47

Другие вопросы по теме