2

Mojolicious レンダリング エンジンを使用して Web リクエストの外部でテンプレートをレンダリングする方法はありますか?

4

2 に答える 2

6

はい

use Mojolicious::Renderer;

my $renderer = Mojolicious::Renderer->new;

push @{renderer->paths}, '/path/to/your/templates';

my $template = $renderer->get_data_template({
    template       => 'foo/bar',
    format         => 'html',
    handler        => 'epl'
});
于 2012-10-08T13:55:36.410 に答える
0

これは、完全な Mojolicious スタックで利用可能なすべてのレンダリング プラグインをフルに活用できる、より包括的な (そしてより最新の) ソリューションです。

use Mojolicious;

unless (@ARGV) {
    die "$0: <template base name> [key value pairs]\n";
}

my $app = Mojolicious->new(secrets => ['ignored']);
my $c = $app->build_controller;
my $r = $app->renderer;

push @{$r->paths}, './templates';          # directory containing templates
$c->app->log->level('fatal');


my $template = shift;                      # template base name e.g. 'index' which looks up ./templates/index.html.ep
$c->stash(shift, shift) while @ARGV >= 2;  # add extra parameters into cache
my $out = $c->render_to_string($template);
print $out if $out;

exit 0;
于 2018-01-15T13:48:56.280 に答える