Workbox离线模式仅适用于根路径

时间:2018-09-12 17:08:36

标签: service-worker progressive-web-apps workbox quasar-framework

我正在处理我的PWA应用程序。 所以我有一个问题,我找不到任何信息来解决。

我在webpack InjectManifest中使用了工作箱(但也尝试过webpack offline-plugin)。

当我从根目录访问我的网页并脱机时,我可以看到它运行正常。但是,当我将路由更改为“ / authorize”或基本上任何其他路由并脱机时,它都行不通。

是否有任何要求仅在我们位于根路径上时才起作用?除了以下内容,我什么也找不到:https://github.com/quasarframework/quasar-cli/issues/131

1 个答案:

答案 0 :(得分:1)

确定。 因此,基本上所有这些都与路由有关。

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);