进入页面后刷新不会出现任何问题,当你从/路由跳转到/XXX路由,再刷新就会提示404。javascript
咱们的服务器是根据页面路由,去按路径寻找资源的。咱们打包好的web站点只有一个html页面,不存在其余资源目录下的html,服务器找不到对应页面因此才报404。html
我看网上有人用配置多个location对象,经过重定向回根目录的index.html解决这个问题。可是我以为这个方案过于繁琐,不适用于比较大,页面比较多的项目。因而我找到了一个只须要加一行代码就能够解决的方案。java
<!--只须要把这行代码加到咱们的根目录的location配置项中就能够解决这个问题-->
try_files $uri $uri/ /index.html;
复制代码
<!--加完之后是这个样子的-->
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html; //解决单页面应用路由跳转后刷新报404错问题
xxx XXXXXX
}
<!--完成这些后,你只须要保存退出vim编辑器并从新启动nginx就能够了。 -->
复制代码
最后,若是我讲的这写对你有帮助请帮我点个赞支持一下吧,刚开始分享本身的经验,但愿能够获得你们的支持和指正。 谢谢你们!nginx