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;
}
error page的配置 加上
error_page 404 /index.html;
配置后不生效
我使用 ./nginx -s reload 重启nginx 时候 不生效 改为 ./nginx -s stop 停止 ./nginx 启动 启动后生效
|