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

Django生产环境(Debug=False)下CSS文件无法加载问题求助

解决Debug=False时CSS加载失败的问题

1. 收集Django静态文件

当DEBUG=False时,Django不会自动托管静态文件,必须先把所有静态文件统一收集到指定目录:

  • 先在settings.py中添加STATIC_ROOT配置,指定静态文件的存放路径:
    STATIC_ROOT = '/home/user/projectdir/static_collected'
    
  • 执行收集命令,将所有app的静态文件复制到STATIC_ROOT目录:
    python manage.py collectstatic
    
    执行时输入yes确认即可。

2. 修正Nginx静态文件配置

你当前的Nginx静态文件路径匹配错误,修改为以下配置:

server {
    server_name mydomain.com www.mydomain.com;

    location = /favicon.ico { access_log off; log_not_found off; }
    # 匹配/static/路径,指向收集后的静态文件目录
    location /static/ {
        alias /home/user/projectdir/static_collected/;
        expires 30d; # 可选,设置静态文件缓存,优化加载速度
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

注:alias会直接替换匹配的/static/路径,确保Nginx能正确找到静态文件,比root更适配这种场景。

3. 检查静态文件目录权限

确保Nginx进程能读取静态文件目录:

  • 查看Nginx运行用户(通常是www-data或nginx):
    ps aux | grep nginx
    
  • 修改目录权限:
    sudo chown -R www-data:www-data /home/user/projectdir/static_collected
    sudo chmod -R 755 /home/user/projectdir/static_collected
    

4. 重启服务生效

  • 重启Nginx:
    sudo systemctl restart nginx
    
  • 重启Gunicorn:
    sudo systemctl restart gunicorn
    

验证

将settings.py中DEBUG改为False,重启服务后访问网站,检查CSS是否正常加载,同时访问mydomain.com/abcd确认自定义404页面正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:35:23