代码之家  ›  专栏  ›  技术社区  ›  Daniel Słaby

Workbox脱机模式仅在根路径上工作

  •  0
  • Daniel Słaby  · 技术社区  · 6 年前

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

    我将Workbox与WebpackInjectManifest一起使用(但也尝试了WebpackOffline插件)。

    当我从根目录访问我的网页并离线时,我可以看到它工作得很好。但是,当我将路由更改为“/authorize”或任何其他路由并脱机时,它不起作用。

    是否有任何要求,它将只在我们在根路径的情况下工作?除了这个我什么也找不到: https://github.com/quasarframework/quasar-cli/issues/131

    1 回复  |  直到 5 年前
        1
  •  1
  •   Daniel Słaby    6 年前

    好的,找到了。 所以基本上都是关于路由的。

    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)工具箱软件内容

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