react 打包后,项目部署完毕,刷新页面报错(404)

缘由解析:javascript

之因此你在浏览器内能够由首页跳转到其余路由地址,是由于这是由前端自行渲染的,你在React Router定义了对应的路由,脚本并无刷新网页访问后台,是JS动态更改了location。html

当你刷新时,你首先是访问的后台地址,而后返回的页面内加载了React代码,最后在浏览器内执行;也就是说若是这个时候报404,是由于你后台并无针对这个路由给出返回HTML内容,也谈不上执行React Router了。前端

解决方案一:java

若是你指望全部的路由都由React Router来定义,只有你的后台,不管任何路径,都返回index.html就行了。剩下的事情交给React Router。那么你要作的就是修改后台服务器,能够放在apache,也能够放在你的java路由内作一个通配路径处理。react

解决方案二:apache

关键点是要明白客户端路由和服务端路由的区别。服务端路由,不一样的服务器配置的方式不一样,楼主本身查。另一种简单的解决方法,使用HashRouter,不要使用BrowserRouter,这样全部的请求都会定位到index.html这一个页面,服务器端也不须要任何配置了。浏览器

import {
    BrowserRouter as Router,
    Route,
    Link
} from 'react-router-dom';

#改成
import {
    HashRouter as Router,
    Route,
    Link
} from 'react-router-dom';

就是把 BrowserRouter改为HashRouter便可。服务器

相关文章
相关标签/搜索