在uni-app的H5环境中,原生底部导航(tabBar)无法跳转通常是由于路由配置或页面路径问题导致的。以下是常见原因及解决方案:
-
检查页面路径配置
在 pages.json 的 tabBar 中,list 项下的 pagePath 必须与 pages 数组中的路径完全一致(包括大小写),且需以 / 开头。
示例:
"tabBar": {
"list": [{
"pagePath": "/pages/index/index",
"text": "首页"
}]
}
-
验证页面是否存在
确保 pagePath 对应的页面文件(如 pages/index/index.vue)已正确创建,且未在 subPackages 分包中(H5默认不支持分包tabBar)。
-
H5路由模式限制
H5端默认使用 hash 路由模式,若部署环境要求 history 模式,需在 manifest.json 中配置:
"h5": {
"router": {
"mode": "history"
}
}
同时确保服务器已配置路径回退(如Nginx的 try_files)。
-
编译后路径问题
若部署到非根目录,需在 manifest.json 的 h5.router.base 中设置公共路径:
"h5": {
"router": {
"base": "./"
}
}