nginx部署前端项目后刷新浏览器报错404

Posted java李杨勇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx部署前端项目后刷新浏览器报错404相关的知识,希望对你有一定的参考价值。

问题: Vue项目打包部署Nginx服务器后,刷新页面后出现404的问题。

原因: 加载单页应用后路由改变均由浏览器处理,而刷新时将会请求当前的链接,而Nginx无法找到对应的页面。

解决:在Nginx配置文件nginx.conf中加入如下配置: 

try_files $uri $uri/ /index.html;

# 变量解释
try_files  固定语法
$uri       指代home文件(ip地址后面的路径,假如是127.0.0.1/index/a.png,那就指代index/a.png)
$uri/      指代home文件夹
/index.html  向ip/index.html 地址发起请求
 
try_files $uri $uri/ /index.html;
尝试解析下列2个文件/文件夹(自动分辨出,IP后面的路径是文件还是文件夹), $uri/$uri/,
如果解析到,返回第一个,
如果都没有解析到,向127.0.0.1/index.html发起请求跳转(该路由必须真实,不然会报错)


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events 
    worker_connections  1024;



http 
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server 
        listen       8100;
        server_name  localhost;
        charset utf-8;
        location / 
            root   D:/deploy/web/http;
            index  index.html index.htm;
        
       

     server 
        listen       80;
        server_name  localhost;
        charset utf-8;
        location / 
            root   D:/deploy/gn/http;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        
      


以上是关于nginx部署前端项目后刷新浏览器报错404的主要内容,如果未能解决你的问题,请参考以下文章

服务器部署—若依vue如何部署到nginx里面?nginx刷新页面404怎么办?完美解决建议收藏

nginx+vue+thinkphp5.1部署,解决前端刷新404,以及前端404解决后,后台又404的问题

Node.js前端程序通过Nginx部署后刷新出现404问题的解决办法

vue-route+webpack部署单页路由项目,访问刷新出现404问题

Nginx - Docker 容器化 Nginx 部署前端 Vue 项目访问 404

Nginx - Docker 容器化 Nginx 部署前端 Vue 项目访问 404