部署vue项目,如何使用rewrite避免出现404

时间:2021-07-12 20:25   作者:ChenReal    阅读:180

为了上新项目,搭了个新框架,为了新框架换了新前端UI。 前端是基于vue的,开发环境看起来一切都很正常很美好~ 然而到生产环境后,一下子跑出了很多404的报错。原来,生产环境上还要针对router做url rewrite……

Jexus的rewrite

jexus是做跨平台开发的.neter非常钟爱的Web服务,支持对站点配置,写正则表达式做url rewrite。然而,实际上我们并不用那么麻烦,直接使用NoFile配置选项即可。

NoFile=index.html

究其原理,是将找不到实际路径的url,直接转发到所配置的URL地址。 完美解决了我的需求!

Nginx的rewrite

Nginx也是常有的Web服务器,而且用户众多,教程俯首皆是。随便搜索一下,就能找到解决方案。我也是从“某度”得到了以下的方案,并实践成功。

server {
        listen  80;
        server_name  localhost;
        #access_log  logs/host.access.log  main;
        root        /var/www/vue/my_project/dist; #vue项目的打包后的dist
        location / {
            try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
            index  index.html index.htm;
        }
        #对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
        #因此需要rewrite到index.html中,然后交给路由在处理请求资源
        location @router {
            rewrite ^.*$ /index.html last;
        }
  }

 

评论
0/200