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

部署到Heroku的Django应用静态资源无法加载问题求助

Django Heroku 部署静态文件加载失败解决方案

以下是你配置中存在的问题及对应修改方案:

  • ALLOWED_HOSTS未添加Heroku应用域名
    当前配置仅包含本地访问地址,部署到Heroku后需要将应用域名加入可访问白名单,修改为:
    ALLOWED_HOSTS = ['0.0.0.0', 'localhost', '127.0.0.1', 'timon-webchat.herokuapp.com']
    
  • WhiteNoise中间件配置位置错误
    Django 3.1版本已废弃MIDDLEWARE_CLASSES配置项,放在该列表中的WhiteNoise不会生效,需要将WhiteNoise中间件移到MIDDLEWARE列表的第二位,紧跟SecurityMiddleware之后:
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'whitenoise.middleware.WhiteNoiseMiddleware', # 新增到该位置
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    
    修改完成后可以删除整个无效的MIDDLEWARE_CLASSES配置段,避免后续配置混淆。
  • 静态文件目录名疑似拼写错误
    你配置的STATICFILES_DIRS指向asets/目录,如果实际存放静态资源的目录名为assets/,该拼写错误会导致收集静态文件时找不到资源,确认目录名后修改为对应名称即可。
  • 静态文件收集验证
    部署前可以先在本地运行python manage.py collectstatic,检查是否有报错,确认静态资源可以正常收集到staticfiles目录中。

额外说明:Heroku的文件系统是临时存储,你存放在本地media目录的用户上传内容会在应用重启、重新部署后丢失,生产环境建议使用第三方对象存储服务存放媒体文件。

内容的提问来源于stack exchange,提问作者Тимати Рогач

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:09:03