vue-cli3本地调试改为mode:history后报错,无法访问页面

router.js

export default new Router({
  mode: 'history',
  // base: './',
  routes: [
    {
      path: '/',
      name: 'home',
      redirect: '/fund',
      component: () => import('@/views'),
      children: [
        {
          path: 'fund/:code',
          name: 'fund',
          component: () => import('@/views/fund')
        },
        {
          path: 'manager/:code',
          name: 'manager',
          component: () => import('@/views/manager')
        },
        {
          path: 'company/:code',
          name: 'company',
          component: () => import('@/views/company')
        },
      ]
    },
  ]
})

地址栏访问:

http://localhost:8080/fund/000001

报错image.png

查了很多都是打包相关的配置,但我这个是在本地调试的时候就报错了

改成hash没有任何错误,不知道问题出在哪里?

阅读 6.5k
4 个回答
export default new Router({
  mode: 'history',
  base: process.env.BASE_URL,
  routes: []
})

自行解决了,主要加了行 base: process.env.BASE_URL 就可以了

出现这个一般是代码中有错,比如中文标点符号、双符号未闭合等,仔细检查一下代码。不大可能因为字符串内容不一样就会报这个错误

这里我怀疑是你的接口抛出的异常呀

hash 是不需要劫持所有路由的。但是 history 需要劫持所有路由

光配置你贴上来的代码段,并没有遇到你说的这个问题.你看看是不是因为业务代码里边出现问题了.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题