4

我有一个基于 Vue CLI 3 的应用程序,我想将其用作 PWA。我需要它在历史模式下工作,因为哈希会干预我在基于 OAuth 的身份验证过程中所做的重定向。

当路由处于散列模式时,设法以 PWA 的形式正常加载。一旦我将模式更改为“历史”,我安装的 PWA 将不再加载 - 我得到的是白屏。我检查了浏览器版本,它仍然可以正常工作(我将 NGINX 服务器中的后备配置为 index.html)。起初我使用 vue CLI 项目和 PWA 插件提供的默认设置。在做了一些研究之后,我在 vue.config.js 中添加了以下内容:

pwa: {                     
  workboxOptions: {
    skipWaiting: true,
    navigateFallback: 'index.html'
  }
}

我看到 service-worker.js 中确实添加了以下内容:

workbox.skipWaiting();    
...
workbox.routing.registerNavigationRoute("index.html");

但它仍然没有帮助。即使应用程序在我的移动设备的主屏幕上成功注册,它也不会运行,除非我将路由更改回哈希模式。

有人知道我可能会错过什么吗?

谢谢

4

2 回答 2

3

我有同样的问题,我通过在我的 router.js 末尾添加它来解决它

{
  path: '*', // or '/index.html'
  beforeEnter: (to, from, next) => {
    next('/')
  }
}
于 2019-03-05T23:33:41.007 回答
0

尝试/index.html代替index.html.

于 2019-01-10T00:05:35.900 回答