Django访问根路径报错TemplateDoesNotExist找不到模板文件问题求助
错误原因
- 模板路径前缀冗余
Django 的render方法会自动扫描配置中指定的模板目录,不需要在路径前手动添加templates/前缀。你视图中写的templates/Home/Home_page.html会被解析为在模板目录下额外寻找templates子目录,无法匹配到实际文件。 - 路径大小写/文件名不匹配
报错提示查找的是home/hom_page.html,但你视图中写的是Home/Home_page.html,目录大小写、文件名拼写都存在不一致的情况。Linux、macOS 等系统对路径大小写严格敏感,即使是Windows环境也建议统一使用小写命名避免部署问题。 - 模板目录未正确注册
如果你的settings.py中TEMPLATES配置的DIRS字段没有包含项目下的templates目录,Django无法找到对应模板位置,正确配置参考如下:
import os TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], # 高版本Django也可以写 BASE_DIR / 'templates' 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
- (若模板存放在App目录下)App未注册
如果你是把templates目录放在单个App的目录下,需要先把该App添加到settings.py的INSTALLED_APPS列表中,且保证TEMPLATES配置中APP_DIRS的值为True。
解决步骤
- 修改视图函数的模板路径,去掉
templates/前缀,保证路径和实际文件完全一致,示例如下:
def home(request): # 请根据实际的目录名、文件名调整下面的路径,确保大小写、拼写完全匹配 return render(request, 'Home/Home_page.html')
- 统一模板目录、文件的命名规范,建议全部使用小写,避免大小写敏感导致的兼容问题。
- 检查
settings.py中的TEMPLATES配置,确认模板目录已经正确注册。 - 如果使用App下的templates目录,确认App已经添加到
INSTALLED_APPS列表。
内容的提问来源于stack exchange,提问作者Developer Lachi
相关产品推荐
相关产品推荐

