vue-router hash模式改成history模式,页面无法访问(非后台配置问题)(怀疑publicPath)
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为有项目要求所以
router
需要设置base
,router base
默认值是'/',像你这种情况需要设置为{base:'/zh/'}
具体可以参考官方文档
https://router.vuejs.org/zh/a...
在hash模式下访问
http://localhost:8080/123/#/index
其实也是可以访问到的我的理解是
publicPath
的意义在于 构建后去哪个路径拿js css这些文件这也是很多人第一次打包后遇到的问题 找不到静态文件 所以把这个路径改成相对路径
'./'
后就可以正常打开页面了按你的需求,其实把路由配置的path遍历添加前缀就可以了
欢迎指正