You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Nginx正确识别并加载Django项目的静态文件?

解决Django部署Nginx后静态文件无法加载的问题

核心问题:Nginx静态资源路径配置错误

你的Nginx配置中location /static/的root参数设置有误。root指令会将请求的URL路径附加到指定目录后,比如当前配置:

location /static/ {
    root /home/ubuntu/ubuntu/project/Pet/Django/bewise/src/static/;
}

当访问/static/img/home.png时,Nginx会尝试读取不存在的路径:
/home/ubuntu/ubuntu/project/Pet/Django/bewise/src/static/static/img/home.png
而你的静态文件实际存放在/home/ubuntu/ubuntu/project/Pet/Django/bewise/src/static/下。

修复方案(二选一即可)

方案1:调整root指向静态目录的父级

修改Nginx配置中的root为静态文件夹的上级路径:

location /static/ {
    root /home/ubuntu/ubuntu/project/Pet/Django/bewise/src/;
    expires 30d; # 可选,添加缓存优化静态资源加载速度
}

此时Nginx会正确拼接出文件路径:/home/ubuntu/ubuntu/project/Pet/Django/bewise/src/static/img/home.png。

方案2:使用alias指令替代root

alias会直接将请求路径映射到指定目录,无需拼接URL路径:

location /static/ {
    alias /home/ubuntu/ubuntu/project/Pet/Django/bewise/src/static/;
    expires 30d; # 可选,添加缓存优化静态资源加载速度
}

额外检查项

  • 确认collectstatic执行成功,静态文件确实存在于目标目录,比如手动检查/home/ubuntu/ubuntu/project/Pet/Django/bewise/src/static/img/home.png是否存在。
  • 确保Nginx进程拥有读取静态目录的权限,执行以下命令:
    sudo chmod -R 755 /home/ubuntu/ubuntu/project/Pet/Django/bewise/src/static/
    sudo chown -R www-data:www-data /home/ubuntu/ubuntu/project/Pet/Django/bewise/src/static/
    
  • 修改Nginx配置后,重启Nginx生效:
    sudo systemctl restart nginx
    

内容的提问来源于stack exchange,提问作者Doup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:45:00