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

Heroku部署推送失败:Django执行collectstatic命令报TypeError问题求助

问题根因

部署报错的核心原因有两个:

  1. 你此前执行的是DEBUG_COLLECTSTATIC=1,这个命令的作用是开启collectstatic的调试日志,不是禁用collectstatic,所以没有达到你预期的效果。
  2. 代码层面存在错误:Django项目的settings.py第63行'DIRS': [BASE_DIR / 'templates']触发了类型报错,你项目中定义的BASE_DIR是字符串类型,无法直接使用/运算符做路径拼接。
解决步骤

临时应急方案(快速完成部署)

直接执行正确的collectstatic禁用命令即可:
heroku config:set DISABLE_COLLECTSTATIC=1 -a name_of_app
注意把命令中的name_of_app替换为你自己的Heroku应用名称,执行完成后重新推送代码就能完成部署。

长期修复方案(推荐)

从根源修复代码问题,不需要禁用collectstatic:

  • 打开项目的settings.py文件,确认顶部是否导入了Path类:
    from pathlib import Path
  • 修改BASE_DIR的定义为Path对象格式,根据你settings.py的存放位置调整路径层数,默认写法参考:
    BASE_DIR = Path(__file__).resolve().parent.parent.parent
    确保BASE_DIR指向你的项目根目录即可,修改完成后重新推送代码就能正常部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 03:06:01