Perl舞者和模板工具包:在模板中包含模板

时间:2013-02-12 14:01:48

标签: perl template-toolkit dancer

我正在尝试在模板中包含模板,如下所示:

parent.tt

  <div class="row-fluid">
    <div class="span3">
    [% INCLUDE my_sidebar]
    </div><!--/span-->
   </div>

my_sidebar.tt与parent.tt(/ myapp / views)

位于同一文件夹中

我对config.yml进行了以下更改: 使用ABSOLUTE

template: "template_toolkit"
engines:
   template_toolkit:
     encoding:  'utf8'
     start_tag: '[%'
     end_tag:   '%]'
     ABSOLUTE : 1

parent.tt包含:

[% INCLUDE /myapps/views/my_sidebar %]

使用RELATIVE

template: "template_toolkit"
engines:
   template_toolkit:
     encoding:  'utf8'
     start_tag: '[%'
     end_tag:   '%]'
     RELATIVE : 1
     INCLUDE_PATH: /myapps/views

parent.tt包含:

[% INCLUDE my_sidebar %]

但在这两种情况下,我都会收到以下错误:

core - template - file error - my_sidebar: not found at /.../csm/64-bit/cpan/5.16.1-2012.09/lib/Dancer/Template/Abstract.pm line 90.

1 个答案:

答案 0 :(得分:5)

您需要在my_sidebar.tt中添加完整的文件名 - INCLUDE。 Dancer会自动将可配置的扩展名(默认为.tt)附加到主模板的名称,但TT不知道该设置。