BrowserRouter会导致刷新找不到路径
服务器Nginx配置
采用Nginx方案需要先将所有资源打包生成到对应的目录,比如dist,然后做如下配置:
server{server_namereact.thinktxt.com;listen80;root/Users/txBoy/WEB-Project/React-Demo/dist;indexindex.html;location/{try_files$uri/index.html;}}
通过配置Nginx,访问任何URI都指向index.html,浏览器上的path,会自动被React-router处理,进行无刷新跳转。
Node服务端配置
一个express应用的配置示例:
constexpress=require('express');constpath=require('path');constport=process.env.PORT||8080;constapp=express();//加载指定目录静态资源app.use(express.static(__dirname+'/dist'))//配置任何请求都转到index.html,而index.html会根据React-Router规则去匹配任何一个routeapp.get('*',function(request,response){response.sendFile(path.resolve(__dirname,'dist','index.html'))})app.listen(port,function(){console.log("server started on port "+port)})