部署Django项目时Nginx静态文件加载失败的路径错误问题
Django + Nginx + Gunicorn 静态文件加载修复方案
问题根源
错误日志显示Nginx尝试访问/home/pau/perp2.0/perp/staticfiles/static/admin/js/core.js,但实际collectstatic生成的静态文件存储在/home/pau/perp2.0/perp/staticfiles/目录下。这是Nginx的root指令逻辑导致路径拼接错误。
解决方案
修改Nginx配置中的静态文件处理块,将root替换为alias:
原配置:
location /static/ { root /home/pau/perp2.0/perp/staticfiles; }
修改后:
location /static/ { alias /home/pau/perp2.0/perp/staticfiles/; }
配置说明
root指令会将location匹配的路径拼接到指定的根路径后,导致生成错误的文件路径(staticfiles/static/xxx)。alias指令会直接用指定路径替换location匹配的部分,访问/static/xxx时会直接映射到/home/pau/perp2.0/perp/staticfiles/xxx,完全匹配实际文件位置。
后续操作
- 确保静态文件已正确收集:
python manage.py collectstatic
- 重启Nginx使配置生效:
sudo systemctl restart nginx
内容的提问来源于stack exchange,提问作者pau87x
相关产品推荐
相关产品推荐

