Автономный режим Workbox работает только по корневому пути - PullRequest
0 голосов
/ 12 сентября 2018

Я работаю над своим приложением PWA. Так что у меня есть одна проблема, которую я не могу найти информацию, как исправить.

Я использую рабочий ящик с веб-пакетом InjectManifest (но также пробовал веб-пакет офлайн-плагин).

Когда я захожу на свою веб-страницу в корне и отключаюсь, я вижу, что она отлично работает. Но когда я изменяю маршрут на «/ authorize» или, по сути, на любой другой маршрут и перехожу в автономный режим, он не работает.

Есть ли требование, что оно будет работать только в том случае, если мы находимся на корневом пути? Я не могу найти ничего об этом, кроме этого: https://github.com/quasarframework/quasar-cli/issues/131

1 Ответ

0 голосов
/ 13 сентября 2018

Хорошо нашел это.Так что в основном все сводится к маршрутизации.

https://developers.google.com/web/tools/workbox/modules/workbox-routing#how_to_register_a_navigation_route https://developers.google.com/web/tools/workbox/modules/workbox-strategies

В моем случае я хотел всегда обслуживать контент как для SPA, поэтому мне пришлось добавить workbox.routing.registerNavigationRoute('/index.html');в мой рабочий конфиг.

В конце это выглядит так:

1) Плагин Webpack:

const commonPlugins = [
  new workboxPlugin.InjectManifest({
    swSrc: './src/workbox-sw.js',
    swDest: 'workbox-sw.js',
  }),
];

2) Содержимое workbox-sw

/* globals workbox, self */

workbox.setConfig({
  debug: true
});

workbox.core.setCacheNameDetails({
  prefix: 'sneak-client',
  suffix: 'v1',
  precache: 'sneak-precache',
  runtime: 'sneak-runtime-cache',
});

workbox.routing.registerNavigationRoute('/index.html');

workbox.precaching.precacheAndRoute(self.__precacheManifest);
...