无静态文件的Django API部署到Heroku时collectstatic报错如何解决
Django API部署Heroku跳过collectstatic步骤的配置方法
Heroku部署Django项目时会默认执行python manage.py collectstatic --noinput命令,无静态文件的API项目没有对应的静态资源配置就会触发报错,你可以选择以下任意一种方案解决,均无需使用Heroku CLI,也不用修改现有STATIC_URL = '/static/'的默认配置:
方案1:配置Heroku环境变量禁用collectstatic
直接在Heroku后台调整配置,无需修改项目代码:
- 进入对应Heroku应用的「Settings」页面
- 找到「Config Vars」模块,点击「Reveal Config Vars」
- 新增配置项:键为
DISABLE_COLLECTSTATIC,值为1,保存后重新触发GitHub部署即可
方案2:修改Django配置兼容collectstatic执行
如果不想调整Heroku配置,直接修改项目的settings.py文件即可:
- 在配置文件中新增
STATIC_ROOT参数配置,示例如下:
import os STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
配置完成后提交代码到GitHub触发部署,collectstatic命令就算没有静态文件可收集也能正常运行结束,不会报错。
内容的提问来源于stack exchange,提问作者Shadow Walker
相关产品推荐
相关产品推荐

