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

DEBUG=False时Django静态文件无法加载的问题求助

解决Django在DEBUG=False时静态文件无法加载的问题(Namecheap cPanel部署)

Django在DEBUG=False模式下不会自动处理静态文件分发,需按以下步骤配置静态文件收集与web服务器映射:

1. 更新settings.py配置

在静态文件相关配置中新增STATIC_ROOT,指定统一收集静态文件的目录:

# Static files (CSS, JavaScript, Images)
STATIC_DIR = [
    BASE_DIR / "static",
]

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    BASE_DIR / "static",
]
# 新增:静态文件收集目标目录
STATIC_ROOT = BASE_DIR / 'staticfiles'

MEDIA_URL = '/media/' 
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

2. 收集静态文件

在项目根目录执行命令,将所有分散的静态文件复制到STATIC_ROOT目录:

python manage.py collectstatic

执行时确认覆盖提示,确保所有静态文件收集完成。

3. 配置cPanel的Apache服务器映射

通过cPanel文件管理器,在域名根目录(通常为public_html)下创建/编辑.htaccess文件,添加规则让Apache直接处理静态/媒体文件请求:

# 映射静态文件路径
Alias /static/ /home/你的用户名/你的项目目录/staticfiles/
<Directory /home/你的用户名/你的项目目录/staticfiles/>
    Require all granted
</Directory>

# 映射媒体文件路径(站点用到媒体文件时添加)
Alias /media/ /home/你的用户名/你的项目目录/media/
<Directory /home/你的用户名/你的项目目录/media/>
    Require all granted
</Directory>

替换你的用户名和你的项目目录为cPanel实际用户名与项目路径。

4. 验证与部署

  • 确保STATIC_ROOT、MEDIA_ROOT目录权限为755,文件权限为644,保证Apache可读取。
  • 在settings.py中设置DEBUG=False并保存。
  • 重启cPanel中的Apache服务(通过「重启服务」功能操作)。
  • 访问站点检查静态文件是否正常加载。

内容的提问来源于stack exchange,提问作者Abdullah Al Azim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 21:31:07