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

使用Apache/Gunicorn部署Django时静态文件无法加载求助

排查Django+Gunicorn+Apache静态文件加载失败问题

我来帮你梳理下可能导致静态文件无法加载的几个关键点,结合你给出的配置逐一分析:

1. 静态文件是否已正确收集到STATIC_ROOT

Django不会自动把app内的静态文件和STATICFILES_DIRS里的文件同步到STATIC_ROOT目录,你需要手动执行收集命令:

python manage.py collectstatic

执行完后,去/var/www/media/myapp/static/目录下检查,确认CSS、JS等静态文件是否真的存在。另外还要检查该目录的权限:

  • 确保Apache的运行用户(通常是www-data)有读取权限,比如设置目录权限为755,文件权限为644
  • 可以用sudo chown -R www-data:www-data /var/www/media/myapp/static/来调整所属用户组

2. Apache配置的规则顺序错误

你的Apache VHost里,ProxyPass / 写在了ProxyPass /static/ !前面,这会导致所有请求先被转发到Gunicorn,后面的静态文件排除规则根本不会生效。必须先写排除规则,再写全局代理,调整后的配置应该是:

<VirtualHost *:80>
 ServerName myapp.fr
 ServerAlias www.myapp.fr myapp.fr
 DocumentRoot /home/django-project/myapp/

 # 先排除静态文件请求,不转发到Gunicorn
 ProxyPass /static/ !
 # 映射静态文件目录
 Alias /static/ /var/www/media/myapp/static/
 # 再把其他所有请求转发到Gunicorn
 ProxyPass / http://localhost:9000/

 <Proxy *>
 Order deny,allow
 Allow from all
 </Proxy>

 # 给静态文件目录添加访问权限配置
 <Directory /var/www/media/myapp/static/>
 Order deny,allow
 Allow from all
 Options Indexes FollowSymLinks
 </Directory>

 <Directory /home/django-project/myapp/>
 Order deny,allow
 Allow from all
 Options -Indexes
 </Directory>
</VirtualHost>

3. 缺少静态文件目录的Directory配置

你原来的Apache配置里只给项目目录加了Directory规则,但静态文件所在的/var/www/media/myapp/static/没有对应的权限配置,这会导致Apache可能因为权限限制无法读取静态文件,所以必须加上上面配置里的<Directory /var/www/media/myapp/static/>部分。

4. ALLOWED_HOSTS配置不匹配

你的ALLOWED_HOSTS只设置了localhost,但访问时用的是myapp.fr或www.myapp.fr,虽然这不是静态文件加载的直接原因,但可能导致Django拒绝请求引发其他问题,建议更新settings.py:

ALLOWED_HOSTS = ['myapp.fr', 'www.myapp.fr', 'localhost']

最后验证步骤

  1. 重新运行collectstatic确保文件同步完成
  2. 重启Apache服务:sudo service apache2 restart
  3. 重启Gunicorn服务(根据你的启动方式,比如systemctl restart gunicorn)
  4. 打开浏览器的开发者工具(F12),查看网络请求里静态文件的状态码:
    • 如果是404:说明文件没收集到,或者Alias路径写错了
    • 如果是403:说明权限配置有问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:40:16