vue 后台重定向不成功_vue-router重定向不刷新问题的解决

在将项目从Angular重构为Vue时遇到路径不一致的问题,通过vue-router的重定向解决了分享链接指向旧路径的问题。然而,部分用户反馈重定向后页面不刷新导致空白。经过排查发现,重定向过程中先执行了旧路由。解决方案是在router中设置通配符路径,统一处理未匹配的旧链接,并在NotFound页面检测`redirectedFrom`属性,存在则执行页面刷新。
摘要由CSDN通过智能技术生成

前阵子太忙了,自己一个人一边开发着新项目,一边维护着旧项目,没时间写博客,终于让我腾出时间了。废话少说,开始正文。

问题描述:

之前项目是angular开发的,后来用vue重构后。项目路径和vue路径不一致,但是app端分享出的链接,依旧是旧项目链接。

解决方法:

通过阅读vue-router的官方文档,发现重定向可以解决这个问题。

如之前文件路径是'/live/detail/id=7234','/skill/microList/',新项目路径是'/s/live/detail?id=7234','/s/live/list'

{path: '/live/list(/)?:foo', redirect: '/s/live/list'},

{path: '/s/live/list', meta: {keepAlive:true,title: '课程'}, component: resolve => require(['../pages/s/live/list/Index.vue'], resolve)},

{path: '/live/detail(/)?:id', redirect: '/s/live/detail?:id'},

{path: '/s/live/detail', meta: {title: '课程详情'}, component: resolve => require(['../pages/s/live/detail/Index.vue'], resolve)},

新的问题:

Nginx 作为一款高性能的HTTP和反向代理服务器,常常用于静态资源的托管以及后端服务的代理。Vue-routerVue.js 的官方路由管理器,负责管理前端页面的路由跳转。 当使用 Nginx 作为前端 Vue 应用的反向代理服务器时,可能会遇到 Nginx 代理 Vue-router重定向 URL 时页面不加载的问题。通常,这是因为服务器端没有正确处理前端路由的重定向逻辑,导致浏览器尝试访问的 URL 在服务器上找不到对应的资源。 为了解决这个问题,可以通过配置 Nginx 的 location 块来实现对 Vue-router 历史模式的代理支持。具体操作如下: 1. 确保你的 Vue 应用的构建配置中使用了 `history` 模式,这样 URL 才能看起来像正常的路径而非带有哈希的 URL。 2. 在 Nginx 配置文件中,配置一个专门的 location 块来处理所有前端路由的请求。这个 location 块应该尝试将请求代理到你的 Vue 应用入口文件(通常是 `index.html`),让前端路由机制能够接管这些 URL 并返回正确的页面。 一个基本的配置示例如下: ```nginx location / { try_files $uri $uri/ /index.html; } ``` 这里,`try_files` 指令尝试按顺序检查和返回指定的文件路径。如果 `$uri` 和 `$uri/` 都找不到对应的资源,那么将请求重定向到 `/index.html` 文件。这样,无论是首次访问还是路由跳转,都能保证返回 Vue 应用的入口页面,由前端的 Vue-router 来处理具体的路由逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值