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

Heroku部署Django应用时如何解决str与str不支持/运算的TypeError

解决Django部署Heroku时模板路径报错问题

错误原因

你的BASE_DIR是通过os.path系列方法定义的字符串类型,但你用了/运算符来拼接路径——这个运算符是pathlib.Path对象专属的,字符串与字符串之间无法用/做运算,因此触发了TypeError。

两种解决方法

方法一:改用Path对象定义BASE_DIR(推荐,Django 3.1+默认写法)

修改settings.py里的BASE_DIR定义,换成pathlib的写法:

from pathlib import Path

# 替换原来的os.path写法
BASE_DIR = Path(__file__).resolve().parent.parent

之后保持模板目录配置不变即可:

'DIRS': [BASE_DIR / 'templates'],

这种写法更简洁,还能自动适配不同操作系统的路径分隔符。

方法二:用os.path.join拼接路径(保留原BASE_DIR定义)

如果不想改动BASE_DIR的定义,就用os.path.join来拼接模板路径,这是字符串路径拼接的标准方式:

'DIRS': [os.path.join(BASE_DIR, 'templates')],

这个方法无需额外导入模块(只要你已经导入了os),直接就能用,同样能正确生成模板目录的路径。

额外注意

确认项目根目录下确实存在templates文件夹,并且里面的模板文件结构符合Django要求,避免后续出现找不到模板的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:15:58