Vue Router跳转到页面后,点击当前的导航导致URL又在后面加了一段重复的当前路径

我是一个木头人
  • 266

使用VUE和Element UI,点击一个菜单导航到当前页面,但是再点击当前导航会导致页面URL继续加上一层当前路径,页面就出问题了,请问有什么解决方案么?

回复
阅读 4k
7 个回答

如果跳转写法没问题,就得看看公用的js问题了

按理说不会这样,是不是做了什么刷新操作。

你配置的路由是相对路由,改成绝对路由就可以了,在路由文件中path配置上加'/'

如果项目是多人开发的话,我猜测有人做了手脚

你倒是把代码贴出来啊 大兄弟!

今天遇到了同样的问题,经过检查,发现路径问题:

 <router-link to="./account/login">登录</router-link>
 <router-link to="./account/register">注册</router-link>

使用组件的相对路径的时候不应该在路径开头加点,而是直接用'/':

 <router-link to="/account/login">登录</router-link>
 <router-link to="/account/register">注册</router-link>
陈番茄
  • 2
新手上路,请多包涵

我出了类似bug,分析如下:
1.问题还原:
主页跳转到A页面,url更新为/a/1001;从A页面跳转到B页面,url更新为/a/b,但B页面的实际路径是/b,所以现在B页面无法从A页面打开

2.问题源头:
主页跳转至A页面,使用的是 this.$router.push({ path: '/a', params: { guid: 1001 }}) ,而A页面跳转至B页面用的是 this.$router.push({ path: 'b' })导致出现路由异常问题

3.问题产生条件:
当a页面路径是/a/:guid,而b跳转用了path: 'b'(这种没带'/')时,b路径会被拼接到:guid的位置 (-_-)!

4.解决:
将this.$router.push({ path: 'b' }) ==改为==> this.$router.push({ path: '/b' }) (多加个'/',让路由能识别是从根路径出发)

宣传栏