尝试使用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>
答案 0 :(得分:1)
首先,模板路径必须采用<name>.<format>.<handler>
格式。因此display/index
是display/index.html.tmpl
。
其次,HTMLTemplateProRenderer
的模板搜索路径相对于app home为templates
和templates/<controller>
。和app home如果使用了插件配置选项tmpl_opts => {use_home_template => 1}
。或添加到app->renderer->paths
的任何路径。