今天在服务器上通过子目录部署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!

GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐