Workbox - SPA - откат к /index.html - PullRequest
0 голосов
/ 26 мая 2018

Я использую workbox с веб-пакетом для создания работника сервиса.

Со следующим кодом в webpack.config.js:

new WorkboxPlugin.InjectManifest({
  swSrc: "./src/sw.js"
}),

работник сервисасгенерировано красиво.

В ./src/sw.js у меня есть:

workbox.precaching.precacheAndRoute(self.__precacheManifest || []);

И все мои активы прекрасно кэшированы.

Однако у меня есть одностраничное приложение иЯ заметил, что при обновлении страницы в автономном режиме по маршруту, не связанному с домашней страницей, работник сервиса не отвечает.Например, когда обновление /page1 в то время как автономный режим не работает, но обновление / работает.

Как настроить рабочий ящик для использования стратегии выполнения, которая использует /index.html в качестве запасного варианта для запросов HTML?

Примечание

Делать что-то вроде этого:

new WorkboxPlugin.InjectManifest({
  swSrc: "./src/sw.js",
  navigationFallback: "/index.html"
})

не работает, поскольку navigationFallback не является допустимым параметром в его приведенном выше использовании.

{ message: '"navigationFallback" is not a supported parameter.'

1 Ответ

0 голосов
/ 26 мая 2018

К счастью, с помощью workbox это было легко решить.

Если ваш сайт представляет собой одностраничное приложение, вы можете использовать NavigationRoute для возврата определенного ответа на все запросы навигации.

workbox.routing.registerNavigationRoute('/single-page-app.html');

В моем случае:

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

Источник: https://developers.google.com/web/tools/workbox/modules/workbox-routing#how_to_register_a_navigation_route

...