Django出现TemplateDoesNotExist报错,subscribe应用模板无法加载如何解决
排查&解决步骤
- 校验模板目录结构
从报错日志可知Django正在查找路径/root/project/subscribe/templates/subscribe/index.html,你的subscribe应用下的模板目录必须符合以下层级:
如果你直接把subscribe/ ├── templates/ │ └── subscribe/ │ ├── index.html │ └── success.html ├── views.py └── ...其他应用文件index.html放在subscribe/templates/根目录下,没有内层的subscribe子文件夹,就会触发该报错。如果不想加内层子文件夹,可以把视图里的模板路径改成'index.html'即可匹配。 - 检查目录读取权限
你的项目部署在/root目录下,确认运行Django服务的用户对subscribe/templates目录有可读权限。可以对比能正常加载的app应用的模板目录权限,调整subscribe对应目录的权限配置。 - 校验文件名大小写
Linux系统对文件名大小写敏感,确认你的模板文件实际名称和视图里写的index.html、success.html完全一致,避免大写字母、拼写错误等问题。 - 临时兜底方案
如果你不想调整现有目录结构,可以修改settings.py里的TEMPLATES配置,把subscribe模板目录加入DIRS参数:
调整后重启Django服务即可生效。import os TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'subscribe', 'templates')], 'APP_DIRS': True, # 其余配置不变 }, ]
内容的提问来源于stack exchange,提问作者stela a
相关产品推荐
相关产品推荐

