页面404

原因:页面的跳转是通过路由实现,如果直接访问,nginx发现找不到页面就直接返回404

方式1、修改nginx配置

{
    listen 80 ;
    listen [::]:80 ;

    root /usr/local/react/build;  //项目打包代码地址
   
    location / {
        try_files $uri $uri/ /index.html;  //项目服务访问地址
    }
}


方式2、改用 hashHistory

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

history: 'hash'


方式3、build的时候生成假的index.html

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

exportStatic: true


总结:

方式2,会使得url中多一个#号,如  https://localhost:8000/user/login  会变成  https://localhost:8000/#/user/login

这也好理解,加个#,变成永远访问的都是/index.html,自然就不会找不到页面

方式3,存在两个问题,一是没路由的,不会生成,二是有强迫症的不适合,感觉生成了很多废文件

综上情况,修改nginx配置是比较合适的



参考:

https://blog.csdn.net/u011262253/article/details/128545555

https://cloud.tencent.com/developer/article/1876099?ivk_sa=1024320u