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

Nginx已正常运行但Django静态文件无法加载求助

静态文件加载失败的排查与修复

结合你的Django配置、Nginx运行状态和当前配置,以下是具体的排查方向:

1. 验证静态文件路径匹配性

你的Django配置中STATIC_ROOT = 'static',意味着collectstatic会将静态文件收集到项目根目录(BASE_DIR)下的static文件夹。当前Nginx配置的root /home/ubuntu/portfolio-server,对应访问/static/css/style.css时,Nginx会尝试读取/home/ubuntu/portfolio-server/static/css/style.css。

  • 手动确认文件存在:执行ls /home/ubuntu/portfolio-server/static/,检查是否包含css、js等子文件夹及对应文件。
  • 若项目根目录并非/home/ubuntu/portfolio-server,直接修改Nginx的root路径为实际项目根目录。

2. 检查Nginx文件访问权限

Nginx默认以www-data用户运行,若该用户无静态文件读取权限,会返回403或404错误:

  • 查看权限状态:ls -l /home/ubuntu/portfolio-server/static/,确保文件夹权限为755、文件权限为644。
  • 修复权限:
sudo chown -R www-data:www-data /home/ubuntu/portfolio-server/static/
sudo chmod -R 755 /home/ubuntu/portfolio-server/static/

3. 确保Nginx配置生效

即便Nginx显示运行中,修改配置后必须重启才能生效:

  • 测试配置语法:sudo nginx -t,若报错则根据提示修正配置。
  • 重启服务:sudo systemctl restart nginx

4. 修正STATIC_ROOT的相对路径问题

使用相对路径STATIC_ROOT = 'static'可能导致collectstatic的文件位置不符合预期,改为绝对路径更稳妥:
在settings.py中修改:

STATIC_ROOT = BASE_DIR / 'static'

重新执行python manage.py collectstatic,确认文件被正确收集到目标文件夹。

5. 排除浏览器缓存干扰

浏览器缓存的旧失效路径可能导致加载异常:

  • 按F12打开开发者工具,切换到Network标签,刷新页面查看静态文件请求状态:
    • 404:路径错误,回到第一步排查;
    • 403:权限问题,参考第二步修复;
  • 按Ctrl+F5强制刷新页面,跳过缓存重新加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:20:03