Django 无法定位指定模板并抛出 TemplateDoesNotExist 类型的异常。即使模板存在于磁盘上,Django 期望找到模板的位置也不存在。
Django 在加载模板时遵循特定的顺序:
在这种情况下,TEMPLATE_DIRS 的配置指示 Django 在 /usr/lib/python2.5/site-packages/projectname/templates 中查找模板。但是,模板组织在 /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html 中。 Django 无法找到模板,因为它希望它们位于 templates 目录的根目录中。
要解决此问题,请将模板移至 /usr/lib/python2.5 /site-packages/projectname/templates/template_name.html.
或者,考虑修改 TEMPLATE_DIRS 以在应用程序的模板目录中搜索模板:
<code class="python">TEMPLATE_DIRS = ( os.path.join(SETTINGS_PATH, 'appname1/templates'), os.path.join(SETTINGS_PATH, 'appname2/templates'), os.path.join(SETTINGS_PATH, 'appname3/templates'), )</code>
如果上述解决方案不起作用,请检查模板目录的所有权权限。在给定的情况下,执行 chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/* 解决了该问题,因为 Web 服务器用户需要适当的权限才能访问模板。
以上是以下是一些适合您的内容的基于问题的标题: 直接和具体: * 为什么 Django 会抛出 TemplateDoesNotExist 错误,即使我的模板存在? * Django 模板加载:的详细内容。更多信息请关注PHP中文网其他相关文章!