Vue路由vue在网址中添加/#/,如果清除,则默认所有网址为'/'

时间:2019-09-22 18:32:37

标签: vue.js vue-router

大家好,我有一个vue CLI应用程序。

在开发模式下,我的网址默认为:

http://localhost:8080/#/

如果我尝试执行http://localhost:8080/signin,它将重定向回http://localhost:8080/signin#/,但显示我的'/'视图。

我的路由器文件如下:

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import Signin from '@/components/Signin'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
    {
      path: '/signin',
      name: 'signin',
      component: Signin
    }
  ]
})

我不知道为什么会这样!这里的任何建议或协助都将非常棒!

1 个答案:

答案 0 :(得分:1)

vue-router的默认设置为“哈希”模式。它将在您的URL上添加一个哈希值,以防止浏览器在用户刷新窗口时实际尝试从该URL加载某些内容(因为它将哈希符号后的所有内容都视为哈希值)。

您可以在vue-router配置中将模式更改为“历史”。

// router.js

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

这将立即可用,并删除URL中的哈希-但是,如果用户重新加载页面(刷新),浏览器将尝试查找整个URL。除非您的服务器配置为处理所有“特立独行”路线,否则它将返回404错误。您可以在official vou-router config

中了解更多信息