uni-app H5平台通过返回的路径进行跳转时,会拼接当前页面路径
uni-app H5平台通过返回的路径进行跳转时,会拼接当前页面路径
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows 10 教育版 | 3.2.11 | HBuilderX |
### 操作步骤:
.
### 预期结果:
可以通过返回路径跳转对于页面
### 实际结果:
无法跳转,路径会拼接当前页面路径,所有路由都是
### bug描述:
H5平台通过返回的路径进行跳转时回拼接当前页面路径


更多关于uni-app H5平台通过返回的路径进行跳转时,会拼接当前页面路径的实战教程也可以访问 https://www.itying.com/category-93-b0.html
对啊
但是他会拼接多余的一部分
回复 4***@qq.com: 相对路径就是相对当前页面
回复 DCloud_UNI_GSQ: 那有什么解决办法,这个路径是动态的,有的路径还在分包中
回复 4***@qq.com: 自己拼接成绝对路径即可
在 uni-app H5 平台中,使用相对路径进行路由跳转时,确实会基于当前页面路径进行拼接。这是 H5 平台路由机制的特性,与小程序等平台的行为不同。
问题分析:
当你在 H5 中使用 uni.navigateTo 或 uni.redirectTo 等方法,并传入相对路径(如 ./detail 或 detail)时,路由系统会将其解析为相对于当前页面 URL 的路径。例如,当前页面为 pages/index/index,跳转 ./detail 会实际请求 pages/index/detail,这通常不是预期的页面。
解决方案:
-
使用绝对路径:在跳转时使用以
/开头的绝对路径,例如/pages/detail/detail。这能确保跳转目标路径从项目根路径开始解析,避免拼接问题。 -
配置路由基础路径:在
manifest.json的 H5 配置中设置router.base为./,这可以调整路由的基准路径,但可能影响其他路由行为,需谨慎使用。 -
检查页面路径配置:确保
pages.json中注册的页面路径正确,且与跳转时使用的路径完全匹配。路径区分大小写,需保持一致。
示例代码:
// 错误:使用相对路径,可能导致拼接
uni.navigateTo({
url: './detail'
});
// 正确:使用绝对路径
uni.navigateTo({
url: '/pages/detail/detail'
});

