vue-router hash模式改成history模式,页面无法访问(非后台配置问题)(怀疑publicPath)

发布于 2022-09-12 03:36:24 字数 2592 浏览 13 评论 0

hash模式下

yarn serve之后启动项目

`
http://localhost:8080/zh/#/index
`

此路径可以直接访问

因为项目要求 必须要有 zh路径

但是因为要干掉# 跟pc的统一起来 因此要改成history模式

改成history模式之后

再次启动项目 打开浏览器就是

`
http://192.168.1.197:8080/zh/
`

只显示 头部 跟 footer 中间的内容没有了

但是如果手动改成

`
http://192.168.1.197:8080/index
`

页面正常访问

vue.config.js中配置了

`
publicPath:"/zh",
`

期望解决这个问题

改成histroy模式之后 可以直接访问

`
http://192.168.1.197:8080/zh/index
`

router.js的路由配置

`

 {
  path: '/index',
  name: 'Index',
  component: Index
},
{
  path: '/search',
  name: 'Search',
  component: Search
},
{
  path: '/dentailbase',
  name: 'Dentailbase',
  component: Dentailbase
},
{
  path: '/newscenter',
  name: 'Newscenter',
  component: Newscenter,
  meta:{
    keepAlive:true
  }
},
{
  path: '/newsdentail',
  name: 'Newsdentail',
  component: Newsdentail
},
{
  path: '/activelist',
  name: 'Activelist',
  component: Activelist,
  meta:{
    keepAlive:true
  }
},
{
  path: '/activelistdentail',
  name: 'Activelistdentail',
  component: Activelistdentail
},
{
  path: '/intertclasslist',
  name: 'Intertclasslist',
  component: Intertclasslist,
  meta:{
    keepAlive:true
  }
},
{
  path: '/contactus',
  name: 'Contactus',
  component: Contactus
},
{
  path: '/intertclassdentail',
  name: 'Intertclassdentail',
  component: Intertclassdentail,
  redirect:'/intertclassdentail/description',
  children:[
    // 课程说明
    {
      path:'description',
      component:Description
    },
    // 课程视频
    {
      path:'video',
      component:Video
    },
    // 课程说明
    {
      path:'comment',
      component:Comment
    },
  ]
  
},
{
  path: '/videodentail',
  name: 'Videodentail',
  component: Videodentail
},
{
  path: '/cooperationexchange',
  name: 'Cooperationexchange',
  component: Cooperationexchange,
  meta:{
    keepAlive:true,
  }
},
{
  path: '/cooperationdentail',
  name: 'Cooperationdentail',
  component: Cooperationdentail
},
{
  path: '/login',
  name: 'Login',
  component: Login
},
{
  path: '/messagelogin',
  name: 'Messagelogin',
  component: Messagelogin
},
{
  path: '/forgotPwd',
  name: 'ForgotPwd',
  component: ForgotPwd
},

`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

明天过后 2022-09-19 03:36:24

因为有项目要求所以router需要设置baserouter base默认值是'/',像你这种情况需要设置为{base:'/zh/'}
具体可以参考官方文档
https://router.vuejs.org/zh/a...

Bonjour°[大白 2022-09-19 03:36:24

在hash模式下访问http://localhost:8080/123/#/index 其实也是可以访问到的
我的理解是 publicPath的意义在于 构建后去哪个路径拿js css这些文件
这也是很多人第一次打包后遇到的问题 找不到静态文件 所以把这个路径改成相对路径'./'后就可以正常打开页面了
按你的需求,其实把路由配置的path遍历添加前缀就可以了
欢迎指正

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文