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

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

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

1、改用 hashHistory

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

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 中增加一行/配置:

exportStatic: true

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

./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 » Umi&React打包部署项目刷新报404错误的几种解决方法

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/228526.html

(0)
上一篇 2022年1月11日 15:47
下一篇 2022年1月11日 15:47

相关推荐

发表回复

登录后才能评论