Django中TemplateDoesNotExist错误排查:配置模板路径后仍未解决
解决Django TemplateDoesNotExist错误的排查步骤
遇到这个报错很常见,咱们一步步来排查:
确认模板文件的实际位置
你在render里指定的是'main_app/index.html',对应的文件路径应该是项目根目录/templates/main_app/index.html。一定要检查:- 这个文件是否真的存在,有没有漏创建文件夹或文件
- 文件名和文件夹名的拼写是否完全一致(Linux/macOS对大小写敏感,比如
Main_app和main_app会被当成不同路径)
验证
TEMPLATES配置的正确性
你已经配置了'DIRS': [os.path.join(BASE_DIR, 'templates')],可以先确认这个路径是否真的指向你的templates文件夹:- 打开终端,进入项目根目录,运行
python manage.py shell - 输入以下代码查看实际路径:
import os from django.conf import settings print(settings.BASE_DIR) print(os.path.join(settings.BASE_DIR, 'templates'))
输出的路径要和你实际存放templates文件夹的路径完全匹配。另外,记得检查
TEMPLATES里的APP_DIRS是否设为True(如果你的main_app在INSTALLED_APPS里,这个配置能兜底查找app内的templates)- 打开终端,进入项目根目录,运行
检查
INSTALLED_APPS配置
确保settings.py里的INSTALLED_APPS列表包含'main_app',比如:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'main_app', # 要确保这一行存在 ]清除缓存并重启服务器
开发环境下有时候缓存会导致模板路径识别异常,试试:- 直接关闭当前的
runserver进程,重新运行python manage.py runserver - 如果是Django 4.2及以上版本,还可以运行
python manage.py clearcache清除缓存
- 直接关闭当前的
确认修改的是正确的settings文件
如果你项目里有多个settings文件(比如settings_dev.py、settings_prod.py),要确认你修改的是当前服务器运行时使用的配置文件。比如如果启动命令是python manage.py runserver --settings=myproject.settings_dev,那你得去修改settings_dev.py里的TEMPLATES配置
内容的提问来源于stack exchange,提问作者user2950593
相关产品推荐
相关产品推荐

