缘由解析: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
便可。服务器