uni-app vue3版本 pages.json页面路由全局配置中onPageNotFound不存在时页面重定向跳转没反应
uni-app vue3版本 pages.json页面路由全局配置中onPageNotFound不存在时页面重定向跳转没反应
产品分类
uniapp/H5
示例代码
{
"pages": [
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页"
}
},
{
"path": "pages/login/index",
"style": {
"navigationBarTitleText": "登录"
}
},
{
"path": "pages/notFound/notFound",
"style": {
"navigationBarTitleText": "404"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "惠善",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8",
"app-plus": {
"background": "#efeff4"
}
},
"onPageNotFound": {
"redirect": "/pages/notFound/notFound" // 未找到页面时,重定向到这个路径
}
}
操作步骤
"onPageNotFound": {
"redirect": "/pages/notFound/notFound"
}
预期结果
跳转到"/pages/notFound/notFound" 404页面
实际结果
跳转到"/pages/notFound/notFound" 404页面
bug描述
uniapp vue3版本 pages.json页面路由全局配置中onPageNotFound全局页面不存在重定向跳转没反应。
开发环境信息
项目创建方式 | PC开发环境操作系统 | PC开发环境操作系统版本号 | HBuilderX类型 | HBuilderX版本号 | 浏览器平台 | 浏览器版本 |
---|---|---|---|---|---|---|
HBuilderX | Windows | Windows 11 专业版 | 正式 | 4.45 | Chrome | 版本 131.0.6778.265(正式版本) |
可以阅读下面的文档 https://uniapp.dcloud.net.cn/collocation/App.html#applifecycle
最好提供一个复现工程比说明你的操作步骤。
在uni-app中,Vue3版本对于页面路由的全局配置,特别是处理404页面(即页面未找到时)的重定向,确实需要仔细配置。pages.json
是uni-app用于定义页面路由、导航栏、选项卡等页面级配置的文件。当onPageNotFound
不存在或者配置不正确时,页面重定向可能无法正常工作。
下面是一个正确的配置示例,以及如何在pages.json
中设置404页面重定向的代码案例。
首先,确保你的pages.json
文件中包含了onPageNotFound
的配置项。这个配置项用于指定当用户访问一个不存在的页面时,应该跳转到的页面路径。
{
"pages": [
// 其他页面配置...
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页"
}
},
// ... 其他页面配置
{
"path": "pages/404/404", // 404页面路径
"style": {
"navigationBarTitleText": "页面未找到"
}
}
],
"globalStyle": {
// 全局样式配置...
},
"tabBar": {
// tabBar配置(如有)...
},
"condition": {}, // 条件编译配置(如有)...
"onPageNotFound": "pages/404/404" // 当页面未找到时,跳转到404页面
}
在上面的配置中,onPageNotFound
被设置为"pages/404/404"
,这意味着当用户尝试访问一个不存在的页面时,应用会自动跳转到pages/404/404
这个页面。
确保你的项目中确实有一个名为404.vue
的文件位于pages/404/
目录下,并且这个文件是一个有效的Vue组件。例如:
<template>
<view class="container">
<text>页面未找到</text>
</view>
</template>
<script>
export default {
name: 'Page404'
}
</script>
<style scoped>
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
flex-direction: column;
}
text {
font-size: 24px;
color: #333;
}
</style>
这个404.vue
组件简单地显示了一个“页面未找到”的消息。当用户访问一个不存在的页面时,他们应该会看到这个消息,前提是pages.json
中的onPageNotFound
配置正确无误。
如果你已经按照上述方式配置了pages.json
和404页面,但仍然遇到重定向没有反应的问题,请检查以下几点:
- 确保
pages.json
文件的格式正确,没有语法错误。 - 确保404页面路径正确无误,并且404页面组件文件存在且有效。
- 清除项目的缓存并重新编译运行,以确保配置生效。