解决:配置NGINX H5页面出现404错误

背景:

  • 在配置项目前端客户端时,由于页面使用NGINX环境实现,由于在测试环境有一套配置,直接复制过来使用,服务启动的时候。能正常出现页面,但是在刷新登录页面时候出现404报错。刚开始以为配置路径有误,但是发现测试环境一样配置,没有问题,而且发现域名接口后多了个路径。
  • 打开网页开发者模式查看信息,发现访问路径由/h5变成了/h5/login。查看日志找不到login这个文件所以报404。

感觉是路由的问题:

  • 路由默认是带#的,有时我们感觉不美观,前端就使其变为history模式,也就没有#字符。

这里的思路是:如果找不到当前页面(404),就返回index.html,重新分配路由。

location ^~/test/ {
    root /home/www/test-project;
    try_files $uri /test/index.html =404;
}
  • 如果用户请求路径为: http://www.xxx.com/test/login
    此时:$uri == /test/login
    定义: $document_root == /home/www/test-project
    首先,会找 $document_root /test/login下的文件 => nginx 会返回 404 => nginx 会逐次找try_files对应值路径下的文件也就是 $document_root /home/www/test-project/login又找不到。
    然后,就会fallback 到 try_files 的下一个配置项/test/index.html,也就是相当于 nginx 发起一个 HTTP 请求到 $document_root/prodTest/index.html。

你可能感兴趣的:(个人日志,nginx,Linux,运维,h5)