前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Umi&React打包部署项目刷新报404错误的几种解决方法

Umi&React打包部署项目刷新报404错误的几种解决方法

作者头像
德顺
发布2023-08-25 13:22:27
1.6K0
发布2023-08-25 13:22:27
举报
文章被收录于专栏:前端资源前端资源

Umi 打包部署到服务器,刷新页面会报 404 错误,这个问题一般是服务端来处理的,比如 Nginx 代理重定向

Umi 官方也提供了解决方法,下面一一介绍一下。

1、改用 hashHistory

在配置文件 .umirc.js 中增加一行配置:

代码语言:javascript
复制
history: { type: 'hash' },

修改后路由中会由 w3h5.com/index 变成 w3h5.com/#/index ,多了一个 # 号,极不优雅,根据自己的需求做取舍把。

history 参数是一个 object 对象,默认值是 { type: 'browser' } ,用来配置 history 类型和配置项。如果只需要修改类型,也可以写成上面的形式。

除了 type 之外,该参数还包含 options 子配置项,下面是子项的简单说明:

type 可选 browserhashmemory

options 传给 create{{{ type }}}History 的配置项,每个类型器的配置项不同

还可以参考:配置 history 类型和配置项

注意:

options 中,getUserConfirmation 由于是函数的格式,暂不支持配置

options 中,basename 无需配置,通过 umi 的 base 配置指定

2、静态化

在一些场景中,无法做服务端的 html fallback,即让每个路由都输出 index.html 的内容,那么就要做静态化。

在配置文件 .umirc.js 中增加一行/配置:

代码语言:javascript
复制
exportStatic: true

然后执行 umi build,会为每个路由输出一个 html 文件。

代码语言:javascript
复制
./dist
├── index.html
├── list
│    └── index.html
└── static
    ├── pages__index.5c0f5f51.async.js
    ├── pages__list.f940b099.async.js
    ├── umi.2eaebd79.js
    └── umi.f4cb51da.css

注意:静态化暂不支持有变量路由的场景。

3、服务端配置路由 fallback 到 index.html

也就是我之前整理的一篇文章,可以做参考:Umi&React打包部署到非根目录及刷新报错404的问题解决

未经允许不得转载:w3h5-Web前端开发资源网 » Umi&React打包部署项目刷新报404错误的几种解决方法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-08),如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、改用 hashHistory
  • 2、静态化
  • 3、服务端配置路由 fallback 到 index.html
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档