uni-app 中 manifest.json 的 h5 路由配置不生效? 淑萍 ☘︎ 提问于 2026-03-03 08:54:20 阅读 25 移动 我在 uni-app 项目里想自定义 H5 端的路由路径,改了 manifest.json 里的 h5.router 模式为 history,但刷新页面就 404,本地开发没问题,部署到 Nginx 上就不行了。 我试过在 manifest.json 里这样配: { "h5": { "router": { "mode": "history", "base": "/myapp/" } } } 但部署后访问 /myapp/home 刷新就报错,是不是还要配服务器?还是我哪里写错了? 我来解答 赞 5 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 UX-柯佳 Lv1 这个确实是服务端配置的问题,history模式的路由需要服务端配合。你的manifest.json配置没问题,但nginx那边没做处理。 nginx要加个try_files配置,把找不到的路径都指向index.html。比如这样: location /myapp/ { try_files $uri $uri/ /myapp/index.html; } 记得改完nginx要重启下服务。原理是让nginx把所有路由请求都转到前端入口文件,然后由前端路由来处理。 我之前也踩过这个坑,部署完发现刷新就404,排查半天才发现是nginx没配好。这种问题本地开发不会暴露,因为webpack dev server默认就处理好了history路由。 回复 点赞 2026-03-09 08:11 上官乐萱 Lv1 这玩意儿是前端路由的经典坑,很多人都踩过。你在 manifest.json 里配了 history 模式,这只是告诉前端用 HTML5 History API 去改 URL,但服务器并不知道这事。 当你刷新页面的时候,浏览器会老老实实向 Nginx 请求 /myapp/home 这个路径,Nginx 上哪找这个物理文件去?肯定 404 啊。本地开发没问题是因为 devServer 帮你做了转发,上线了就得自己配 Nginx。 解决办法很简单,改 Nginx 配置,加个 try_files。因为你 base 写的是 /myapp/,所以 location 也要对应上,或者直接在根 location 里写。 一般这样处理: location /myapp/ { alias /你的网站根目录/myapp/; # 或者 root 指令,看你实际部署情况 try_files $uri $uri/ /myapp/index.html; } 这段代码的意思是:Nginx 先找用户访问的文件,找不到就找目录,再找不到就统统回退到 index.html,把控制权交回给前端路由。 另外提醒一句,manifest.json 里的 base 路径要跟 Nginx 里实际部署的目录结构保持一致,不然静态资源(js、css)也会 404。配完记得 nginx -s reload 一下。 回复 点赞 3 2026-03-04 09:56 加载更多 相关推荐 2 回答 33 浏览 uni-app中pages.json设置页面标题不生效怎么办? 在uni-app项目里配置了pages.json里的navigationBarTitleText属性,但页面标题还是显示默认名称,这是为啥啊? 比如在pages.json里写了这样:{ "pages"... 正利 Dev 移动 2026-02-19 13:29:22 2 回答 60 浏览 uni-app中pages.json配置了路径,为什么页面跳转时找不到页面? 在uni-app项目里,我在pages.json的pages数组里配置了新页面路径,但用uni.navigateTo跳转时一直提示页面不存在。路径明明写对了啊... 配置示例: { "pages": ... シ炳光 移动 2026-01-31 12:12:24 2 回答 271 浏览 uni-app中pages.json配置了导航栏标题但页面不显示,该如何解决? 在uni-app项目中,我在pages.json里给某个页面配置了navigationBarTitleText,但实际页面顶部标题却显示为空白。检查配置文件确认路径正确,也尝试过重启服务,但问题依旧。... 欧阳俊蓓 移动 2026-01-29 00:24:52 1 回答 25 浏览 uni-app 中 Vue3 的 setup 语法糖不生效怎么办? 我用 HBuilderX 创建了一个 uni-app 项目,选了 Vue3 + Composition API,但在页面里写 语法糖完全没反应,变量都拿不到。 官方文档说支持 Vue3.2+,但我试了... 设计师冠英 移动 2026-03-22 14:07:21 2 回答 47 浏览 uni-app 条件编译在 H5 和 App 平台不生效是怎么回事? 我在 uni-app 里用条件编译区分 H5 和 App 平台,但加了 #ifdef H5 的代码在 H5 端没显示,App 端反而跑进去了,是不是写法有问题? 我试过这样写: <view>... 上官桂霞 移动 2026-03-15 19:38:21 2 回答 43 浏览 uni-app中使用flex布局时子元素高度不生效怎么办? 在uni-app页面里用flex布局,容器设置了flex-direction: column,子元素加了flex:1,但高度就是不生效,内容溢出到外面了。我试过给子元素加min-height:100%... Mr-浩迪 移动 2026-02-10 14:34:29 1 回答 36 浏览 uni-app 里小程序端 onShow 不触发是怎么回事? 我在 uni-app 项目里写了个页面,想在每次切回来的时候刷新数据,就用了 onShow 生命周期。但在微信小程序真机上测试时发现 onShow 根本没执行,H5 端倒是正常的,这是为啥? 我试过把... 书生シ鑫鑫 移动 2026-03-31 11:56:13 1 回答 29 浏览 uni-app中如何监听页面返回事件? 我在uni-app里做了一个表单页面,用户填写到一半点返回键,我想弹个确认框防止误操作。但试了onUnload和onHide都不行,安卓物理返回键根本没触发这些生命周期。 查文档说可以用onBackP... 鑫鑫(打工版) 移动 2026-03-25 19:07:20 1 回答 62 浏览 uni-app中如何让页面背景色铺满整个屏幕? 我在uni-app里写了个登录页,想把背景色设成浅蓝色,但发现只覆盖了内容区域,底部有一截白边,特别是在iPhone X这类有安全区的机型上特别明显。我试过给page和view都加背景色,也用了hei... Designer°佳润 框架 2026-03-21 09:47:16 2 回答 53 浏览 uni-app 中如何正确使用自定义导航栏并适配状态栏高度? 我在 uni-app 里想用自定义导航栏,但发现不同手机的状态栏高度不一样,顶部经常被遮挡。我试过用 uni.getSystemInfoSync() 获取状态栏高度,但放到页面里还是不对。 这是我的结... ლ若曦 框架 2026-03-20 20:35:18
nginx要加个try_files配置,把找不到的路径都指向index.html。比如这样:
记得改完nginx要重启下服务。原理是让nginx把所有路由请求都转到前端入口文件,然后由前端路由来处理。
我之前也踩过这个坑,部署完发现刷新就404,排查半天才发现是nginx没配好。这种问题本地开发不会暴露,因为webpack dev server默认就处理好了history路由。
当你刷新页面的时候,浏览器会老老实实向 Nginx 请求
/myapp/home这个路径,Nginx 上哪找这个物理文件去?肯定 404 啊。本地开发没问题是因为 devServer 帮你做了转发,上线了就得自己配 Nginx。解决办法很简单,改 Nginx 配置,加个 try_files。因为你 base 写的是 /myapp/,所以 location 也要对应上,或者直接在根 location 里写。
一般这样处理:
这段代码的意思是:Nginx 先找用户访问的文件,找不到就找目录,再找不到就统统回退到 index.html,把控制权交回给前端路由。
另外提醒一句,manifest.json 里的 base 路径要跟 Nginx 里实际部署的目录结构保持一致,不然静态资源(js、css)也会 404。配完记得
nginx -s reload一下。