使用Mojolicious :: Lite的外部模板

时间:2017-02-15 16:06:31

标签: perl templates mojolicious mojolicious-lite

尝试使用HTMLTemplateProRenderer插件 Mojolicious::Lite 这样我就可以使用HTML::Template

样式的模板文件

问题是每个示例,甚至文档,只显示附加到脚本的模板文件。我需要模板文件与Perl代码位于不同的目录中。

以下是我想要做的一个示例。

这可以使用__DATA__,但是如何通过使用外部模板文件来实现:

#!/usr/bin/env perl

use Mojolicious::Lite;

plugin 'HTMLTemplateProRenderer';

# Route leading to an action that renders a template
get '/test' => sub {
    my $c = shift;

    $c->stash( one => 'This is result one' );

    $c->render(
        template => 'display/index',
        two      => 'this is the second',
        handler  => 'tmpl'
    );
};

app->start;

模板文件为display/index.tmpl

 <html>
  <head><title>Test Template</title>
   <body>
     <p>Value ONE =  <TMPL_VAR NAME="one"> </p>
     <p>Value TWO =  <TMPL_VAR NAME="two"> </p>
   </body>
 </html>

1 个答案:

答案 0 :(得分:1)

首先,模板路径必须采用<name>.<format>.<handler>格式。因此display/indexdisplay/index.html.tmpl

其次,HTMLTemplateProRenderer的模板搜索路径相对于app home为templatestemplates/<controller>。和app home如果使用了插件配置选项tmpl_opts => {use_home_template => 1}。或添加到app->renderer->paths的任何路径。