<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="依靠nginx配置解决 react-router浏览器刷新页面404的问题" id="card1">
<p> 游客</p><p>
标题:依靠nginx配置解决 react-router浏览器刷新页面404的问题<br/>
正文:<br/>
项目使用react-router，做成single page application，入口地址/home/hard/Project/game/web-client/build/html/index.html，通过域名domain.com就能访问到这个入口。问题是，使用了路由之后，假如uri为domain.com/games.html，通过可以通过浏览器api跳转页面，可一旦刷新页面，就会报404。 我希望的是路由到某个uri之后，即使刷新页面，或直接在浏览器中输入这个uri，一样可以直接路由到games.html的页面。解决在论坛上提了问，几天了没人响应，也查不到相关的资料，所以说其实查不到的，也问不明白，还得靠自己探索。使用node的服务器http-server我一开始没多想，以为是nginx的问题，也许node的服务器天然支持这一点。换了，问题没有解决。开始的nginx配置server{<br/>    listen 80;<br/>    server_name www.domain.com domain.com;<br/>    location ~* \.js$ {<br/>        root /home/hard/Project/game/web-client/build/js;<br/>    }<br/>    location / {<br/>        root /home/hard/Project/game/web-client/build/html/;<br/>    }<br/>}这个导致404是很明显的，如果uri是domain.com/games.html，那么nginx会试图在/home/hard/Project/game/web-client/build/html/目录下找games.html,404是肯定的。nginx rewrite解决新的配置server{<br/>    listen 80;<br/>    server_name www.domain.com domain.com;<br/>    location ~* \.js$ {<br/>        root /home/hard/Project/game/web-client/build/js;<br/>    }<br/>    loca<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2268&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2268&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2268&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2268&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=2268">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=2268">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>