当路由器处于历史模式时,PWA 不会加载(基于 Vue CLI 3 的项目)

2024-05-06

我有一个基于 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");

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

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

Thanks


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

{
  path: '*', // or '/index.html'
  beforeEnter: (to, from, next) => {
    next('/')
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当路由器处于历史模式时,PWA 不会加载(基于 Vue CLI 3 的项目) 的相关文章

  • Vue.js - 如何删除 hashbang #!来自网址?

    如何删除哈希爆炸 来自网址 我在 vue 路由器文档中找到了禁用 hashbang 的选项 http vuejs github io vue router en options html http vuejs github io vue r
  • 如何使用 Laravel Mix 和 WorkBox?

    我正在尝试为我的应用程序构建一个 PWA 并花了近 48 小时试图弄清楚如何将 Workbox 与 Laravel Mix 结合使用 具有讽刺意味的是 谷歌说 Workbox 是为了让事情变得简单 Buh 好吧 到目前为止我已经弄清楚了 我
  • Vuex存储数据总是驻留在内存中?

    首先 我希望您能理解我蹩脚的英语 我想知道Vuex的存储数据是否总是驻留在内存中 让我用一个例子来解释一下 当进入页面A时 我们从服务器收到一个列表 并实现将其存储在商店中 这是否意味着当我进入页面A并移动到页面B时 A的列表将保留在内存中
  • 当 Vuejs 中的 props 值发生变化时,DOM 不会更新

    我有父母和孩子 在父级中 我将 3 个变量作为 props 传递给子级 在孩子中我正在使用watch 寻找变量的变化 当孩子第一次被创建时watch按预期工作 但是当更新 props 中的数据时 子级的 DOM 不会更新 正在寻找变量数据变
  • 将选定的值传递给 vuejs 函数

    如何将选定的值传递给 vuejs 函数 v model我猜不会有帮助 我需要在之后设置过滤器的值item items orderBy sortKey reverse where reverse and sortKey是动态值 html
  • vuetify 中的 v-app-bar 和 v-toolbar 有什么区别?

    我刚刚开始探索vuetify http vuetifyjs com 所有 vuetify 组件都位于
  • 将组件注册到现有的 Vue.js 实例

    我是 Vue js 新手 我想注册一个本地组件 如下所述 https v2 vuejs org v2 guide components html Local Registration https v2 vuejs org v2 guide
  • 页面在 Google Adwords 转化跟踪上重定向

    我有一个表单 人们可以在其中提交数据 然后使用 ajax 将数据发送到服务器 我已将其设置为 Google Adwords 中的转化 下面是我使用过的代码 问题是 当用户提交表单时 在收到响应后 它会重定向回我给出的 URL 我不想重定向
  • 如何判断何时创建新组件?

    我一直在寻找背后的逻辑当有人在 AngularJS Angular 上的 Web 应用程序中创建新组件时但我认为这更通用 可能适用于所有基于组件的前端框架 我知道有像这样的一些原则应该是抽象的和可重用的但例如我在角度文档中看到 每个单独的路
  • 有没有办法使用 Vue-Router 从动态 URL 中删除目录?

    我为一家保险经纪公司构建了一个 vue js Web 应用程序 其中每个代理人都有自己的网站 该网站是根据他们的个人资料生成的 这就是我的 vue router 索引文件中的链接的样子 path agents id name AgentSi
  • Vuetify 断点在 Nuxt.js 中不起作用

    我正在使用一个项目Nuxt js作为 SSR 发动机和Vuetify作为样式框架 在我的模板之一中 我有这样的代码
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • Vue.js + Element UI:在更改时获取“event.target”

    我无法获取在事件处理程序中触发事件的 html 字段 在 javascript 中是event target 我有一个表格 附加到更改事件函数的输入元素 管理更改事件的函数 我的代码如下 var Main methods change pa
  • vuejs 模板和 asp.net 部分视图,好的做法吗?

    我在网站中使用 Vue js 并将模板添加到 html 代码中 并将 js 代码添加到单个 js 文件中 所以我不想使用 vue Vuefy Browserfy 方法 而是稍后捆绑并缩小我的 js 文件 由于我必须使用 Asp Net MV
  • 如何从vuejs和firestore获取文档的id?

    我有这个代码可以从 firestore 获取所有文档 const getThemesList async commit gt const snapshot await firebase firestore collection themes
  • 将 Stripe.js 作为 ES 模块导入到 Vue 中

    我正在尝试按照 stripe elements 文档中的说明并将 ES 模块安装到我的 Vue 支付组件中 https stripe com docs stripe js html js 请注意 目前 Stripe 网站 ES 模块安装选项
  • Vue 异步 catch 块中的错误对象在调试器中未定义

    我有这个 Vue 组件 它工作正常 但在 VSCode 中调试是一个问题
  • Vue SPA - 如何在浏览器中呈现时隐藏 .vue 文件

    我正在开发一个用 Vue js 开发的单页应用程序 托管在 Node js 服务器上 目前它仍在开发中 但最终将暴露给外部客户 并且由于我们将处理敏感数据 我们希望避免在用户检查元素时看到 vue 文件和相对文件树结构在开发工具中 See
  • 如何禁用vuejs中的按钮

    我想在填写表单时禁用该按钮 当所有输入都填满后 将使用 vuejs 和 laravel 框架启用按钮 我尝试通过简单地禁用按钮来实现这一点
  • beforeRouteUpdate 和观看 '$route' - Vue.js 之间的区别?

    正如我们所知 为了对我们使用的同一组件中的参数变化做出反应beforeRouteUpdate挂钩或观看 route 观看 route const User template watch route to from react to rout

随机推荐