Django项目出现TemplateDoesNotExist at /错误,求排查问题原因
解决Django "TemplateDoesNotExist at /" 错误
问题根源
你的代码存在两处关键问题:
- BASE_DIR路径错误:当前
settings.py中BASE_DIR指向的是包含settings.py的子目录,而非项目根目录,导致TEMPLATES_DIR计算的路径不正确。 - 未在TEMPLATES配置中添加模板目录:仅定义了
TEMPLATES_DIR,但未告知Django要搜索这个目录下的模板文件。
具体修复步骤
1. 修正BASE_DIR路径
打开settings.py,将BASE_DIR修改为:
BASE_DIR = Path(__file__).resolve().parent.parent
这个路径会指向项目的根目录(即包含manage.py的目录)。
2. 配置TEMPLATES搜索目录
在settings.py中找到默认生成的TEMPLATES配置块,将DIRS字段修改为包含你定义的TEMPLATES_DIR:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [TEMPLATES_DIR], # 加入自定义模板目录 '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', ], }, }, ]
3. 确认目录结构正确性
确保你的项目目录结构如下(templates目录与manage.py同级):
你的项目名/ ├── 你的项目名/ │ ├── settings.py │ ├── urls.py │ └── views.py ├── templates/ │ └── index.html └── manage.py
4. 检查文件名与大小写
确认index.html文件名拼写正确,Linux/macOS系统需注意大小写匹配(比如不要写成Index.html)。
完成以上修改后,重启runserver即可正常加载模板。
内容的提问来源于stack exchange,提问作者ashraf sadik
相关产品推荐
相关产品推荐

