我将template_path配置变量设置为我项目中的templates文件夹。
在此文件夹中,我有以下模板:
base.html
admin/register.html
我希望register.html
扩展base.html
所以我有:
{% extend "base.html" %}
这会导致以下错误:
IOError: [Errno 2] No such file or directory: '/home/kj/Lab/test/templates/admin/base.html'
显然它正在查看子模板的同一目录。
当然,我可以使用../base.html
访问base.html,但我认为如果我能给它一个“绝对路径”(从template_path开始的意义上)会好得多
任何人都可以提供帮助吗?
答案 0 :(得分:2)
render
的工作方式,我认为不可能。将模板名称传递给渲染函数时,如:
RequestHandler.render('admin/register.html')
render
将开始从template_path/admin
目录中查找模板。 extends
operator
搜索admin
目录中的模板,因此您必须提供相对路径。如果我发现更多,我会更新这个答案。
编辑:我已经确认目前无法做到这一点,并且已被Ben Darnell添加为feature request的Tornado问题跟踪器(他维护着Tornado项目)。