Nginx 代理前端代码 路由访问404

vue 默认是hash模式,虽然访问路由不会报错,但是会使访问路径中有 # 异常难看。不想hash这种以#号结尾的路径,可以使用路由的history的模式。

不过history的这种模式需要后台配置支持。比如:当我们进行项目的主页的时候,一切正常,可以访问,但是当我们刷新页面或者直接访问路径的时候就会返回404,只是动态的通过js操作window.history来改变浏览器地址栏里的路径,并没有发起http请求,但是当我直接在浏览器里输入这个地址的时候,就一定要对服务器发起http请求,但是这个目标在服务器上又不存在,所以会返回404

所以需要在niginx中 nginx/conf 中编辑nginx.conf

域名为根目录的 使用 www.xxxxxx.com

 location / {
  root   /homt/local; #你的路径
  index  index.html index.htm;
  try_files $uri $uri/ /index.html;
  }

如果你想映射域名 www.xxxxxx.com/pc 为pc路径的

location /pc {
  root   /homt/local; #你的路径
  index  index.html index.htm;
  try_files $uri $uri/ /pc/index.html;   #这里一定要同样加上/pc 否则无法访问
  }

error page的配置 加上

error_page 404 /index.html;

配置后不生效

我使用 ./nginx -s reload 重启nginx 时候 不生效
改为 ./nginx -s stop 停止
./nginx 启动
启动后生效

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐