背景 : 第一次用umi 这个框架 还不是很熟悉
"dva": "^2.1.0",
"path-to-regexp": "^2.2.0",
"prop-types": "^15.6.1",
"rc-form": "^2.1.7",
"react": "^16.2.0",
"umi": "^1.0.0-0",
"umi-plugin-dva": "^0.1.5"
webserver: nginx
刚开发完一个 小东西现在打包完部署的时候直接访问 之前的路由 /user/login 报404
domain/xxx/user/login 其中 xxx是服务器上的一个文件夹 现在访问这个地址 静态资源加载都没有问题 只是访问之前设定好的路由 会 404

查了一些资料

对于一个小白来说 有点不太知道这个BASE_URL应该加到哪里 略显尴尬 。。。

第一个方案试了 打包完之后还是一样的效果 还是404
第二个方案试了 打包的时候直接报错 报错如下图

第三个方案 没明白 这句话啥意思 服务端配置路由 fallback 到 index.html
然后还查到了一个issue issue190
这里面的index.js 没懂是 pages文件夹下的index.js 吗 ? 这个我是有的
然后还在.umirc.js中加上了 hashHistory: true 打包之后还是不好使
.umirc.js文件中 :

.webpackrc.js文件中:

现在试了好多次 打包之后的部署 还是不能正常访问之前指定好的路由
domain/xxx/user/login 想访问这个路径 还是不可以
在一个大神的帮助之下 得以解决 有遇到类似问题的 可以来咨询 这个帖子留在这 就先关了
@feivorid 怎么解决的,可以贴一下么?
@ShaneKing 有啥问题,可以提出来。
@sorrycc 既然大神发话了,我就问几个小白问题了。
是不是放到nginx中,必须exportStatic?不能一个index.html?
不然直接在地址栏输入localhost/xxx/yyy/zzz就会报404?
还有如果使用了变量路由,是不是不能exportStatic?
也可以一个 index.html,然后在 nginx 里配置路由 fallback 到这个 index.html 。
location / {
try_files $uri @fallback;
}
location @fallback {
rewrite .* /index.html break;
}
@sorrycc
大神说的应该上面这种对吧?
网上还搜到其它的变种
location / {
try_files $uri $uri/ /index.html;
}
location /{
try_files $uri /index.html;
}
在config.js或者.umirc.js添加hashHistory: true都不被允许

在一个大神的帮助之下 得以解决 有遇到类似问题的 可以来咨询 这个帖子留在这 就先关了
你的问题已经解决,又不给出你的方式,然后又把问题关闭,这样合适吗?
这种issue有什么用?
目前我也遇到这个问题,最终解决方案是在 config.js 文件里加个配置(umi3)
history: { type: 'hash' }
因为umi默认的是 type=browser
但是这个问题就很奇怪,为什么只有hash路由可以
@sorrycc
Most helpful comment
你的问题已经解决,又不给出你的方式,然后又把问题关闭,这样合适吗?