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

Django使用extends标签报TemplateDoesNotExist但加载器识别文件存在

问题原因与解决方案

  • extends标签误用相对路径
    如果模板中extends标签写为{% extends "./t_base_menu.html" %}等带./、../前缀的相对路径格式,Django会相对于当前home/index.html模板所在的目录查找父模板,不会遍历全局配置的TEMPLATE_DIRS路径。修正方法为直接写文件名:
{% extends "t_base_menu.html" %}
  • 根模板目录权限不足
    运行Django进程的系统用户对project/templates目录无读取权限,对project/home/templates目录有权限,因此移动文件后功能正常。Linux环境下可执行以下命令修复权限:
chmod -R 755 project/templates
  • SITE_ROOT运行时路径偏差
    如果SITE_ROOT用相对路径定义,不同启动方式(开发服务启动、WSGI部署)的工作目录不同,会导致拼接的TEMPLATE_DIRS路径与实际路径不匹配。可在settings.py中添加调试代码确认路径:
print "TEMPLATE_DIRS 实际生效路径:", join(SITE_ROOT, 'templates')

确认输出路径与t_base_menu.html实际存放的父目录完全一致即可。

  • 文件名大小写不匹配
    Linux等大小写敏感的系统中,模板中写的文件名与实际文件大小写不一致(如实际文件名为t_Base_menu.html,模板中写为全小写)也会触发该错误,核对文件名大小写即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:06:05