今天在服务器上通过子目录部署vue build后的文件时,遇到了部署后访问该路径报403 Forbidden的问题。具体情况如下:

  nginx的版本为1.17.3

  此时nginx.conf的配置情况

server {
                listen  5000;
                server_name     localhost;
                location /manager {
                        alias   /home/xxxx/Project/vue/dist;
                        index   index.html;
                        try_files   $uri $uri/ /index.html;
                }
        }

  最终找到问题是由于try_files 中包含有$uri/的文件夹,此时如果去掉$uri/,nginx便会正常运行,但是这时候因为alias配置的为一个文件夹,而try_files又不包括文件夹,所以nginx会无法正确匹配到index.html。

  所以只是去掉$uri/并不是最好的解决办法。之所以去掉$uri/便可以正常运行的原因是因为nginx会自动为文件夹下的文件创建索引,但是nginx创建索引的配置默认是关闭的,所以nginx自己会把自己给禁止掉,最终导致403错误的发生。因此我只需要在配置中 打开创建索引就可以了。最终配置如下:

server {
                listen  5000;
                server_name     localhost;
                location /manager {
                        autoindex on;
                        alias   /home/xxxx/Project/vue/dist;
                        index   index.html;
                        try_files   $uri $uri/ /index.html;
                }
        }

  success!

Logo

前往低代码交流专区

更多推荐