现象:
在浏览器中直接访问www.test.com/api1/login会404。但如果你先访问www.test.com后再点“登录" 跳转到www.test.com/api1/login是正常显示。f5刷新又会出现 404了
这是web单页面开发模式造成的。现在主流的前端框架基本都是单页面的。如:react、vue等。
单页面简单来说就是访问所有资源路径、其实页面内容只有一个(一般是index.html)。这个页面中引入的js框架会根据当前访问的url去路由到相应的子页面组件(可以理解为页面片段)进行逻辑处理和页面渲染。
所以当你访问www.test.com/api1/login 其实web站中并没login这个页面资源。所以就报404啦!
解决:
location /demo/ {
rewrite .* /index.html break;
root /data/build;
}
参考:http://www.fly63.com/article/detial/821