防止VueJs中浏览器URL的位置更改

时间:2018-05-31 10:16:10

标签: javascript html vue.js vue-router

我有一个vuejs应用程序,我对后端进行rest api调用。我已经定义了路由器并导航了不同的组件。现在,当我浏览时,我会在浏览器URL中看到https://domain-name.com/#/abc路径路径。我想阻止它,以便它总是显示https://domain-name.com/,无论我遍历什么路径。有没有办法在Vuejs或任何其他解决方案中做到这一点。感谢您的帮助!

谢谢, 拉胡

2 个答案:

答案 0 :(得分:1)

您正在使用Vue Router,它的想法是改变路线...

由于您已在路由器下的网址中获得了哈希,因此您需要添加mode属性。

const router = new VueRouter({
  mode: 'history',
  routes: [...]
})

这将删除/#/ someRoute,它将变为/ someRoute

添加历史记录模式后,您需要分别设置apache / nginx服务器,以反映用户是否输入domain.com/someRoute,他们将不会收到我们可以修复的任何内容here

如果您希望链接永久保留为www.domain.com而不是使用vue-router,那么您必须在需要时更改组件,基本上在页面上有一百万个和一个if语句

答案 1 :(得分:0)

您可以使用alias

  

/ a的别名,因为/ b表示当用户访问/ b时,URL仍保留   / b,但将被匹配,就好像用户正在访问/ a。

以上内容在路由配置中可以表示为:

const router = new VueRouter({
  routes: [
    { path: '/a', component: A, alias: '/b' }
  ]
})

所以,就您而言

const router = new VueRouter({
  routes: [
  // the URL will remains https://domain-name.com/
    { path: '/abc', component: ABC, alias: '/' }
    { path: '/def', component: DEF, alias: '/' }
  ]
})