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

raj*_*lli 5 perl template-toolkit dancer

我试图在模板中包含一个模板,如下所示:

parent.tt

  <div class="row-fluid">
    <div class="span3">
    [% INCLUDE my_sidebar]
    </div><!--/span-->
   </div>
Run Code Online (Sandbox Code Playgroud)

my_sidebar.tt与parent.tt存在于同一文件夹中(/ myapp/views)

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

template: "template_toolkit"
engines:
   template_toolkit:
     encoding:  'utf8'
     start_tag: '[%'
     end_tag:   '%]'
     ABSOLUTE : 1
Run Code Online (Sandbox Code Playgroud)

parent.tt包含:

[% INCLUDE /myapps/views/my_sidebar %]
Run Code Online (Sandbox Code Playgroud)

有了RELATIVE

template: "template_toolkit"
engines:
   template_toolkit:
     encoding:  'utf8'
     start_tag: '[%'
     end_tag:   '%]'
     RELATIVE : 1
     INCLUDE_PATH: /myapps/views
Run Code Online (Sandbox Code Playgroud)

parent.tt包含:

[% INCLUDE my_sidebar %]
Run Code Online (Sandbox Code Playgroud)

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

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.
Run Code Online (Sandbox Code Playgroud)

Dav*_*man 5

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