Mojolicious::Lite с набором шаблонов

Я пытаюсь заставить Template Toolkit работать как средство визуализации по умолчанию в Mojolicious::Lite. Что я имею:

use strict;
use warnings;

use Mojolicious::Lite;
use Mojolicious::Plugin::TtRenderer;
plugin tt_renderer => { template_options => { INCLUDE_PATH => './tmpl', DEBUG => 1 } };

get '/' => sub {
  my $self = shift;

  $self->render( 'index' );
};

app->renderer->default_handler( 'tt' );
app->start;

Когда я пытаюсь попасть на тестовый сервер, я получаю:

[Fri Oct 12 14:02:02 2012] [info] Listening at "http://*:3000". 
Server available at http://127.0.0.1:3000. 
[Fri Oct 12 14:02:08 2012] [debug] Your secret passphrase needs to be changed!!! 
[Fri Oct 12 14:02:08 2012] [debug] GET / (Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:16.0) Gecko/20100101 Firefox/16.0). 
[Fri Oct 12 14:02:08 2012] [debug] Routing to a callback. 
[Fri Oct 12 14:02:08 2012] [debug] Nothing has been rendered, expecting delayed response.

Это происходит независимо от того, что я передаю в качестве параметров для «рендеринга». Я не могу понять, как получить из этого какую-либо полезную информацию для отладки; но я не использовал Mojo раньше.

Я подтвердил, разбросав некоторые операторы warn, что вызывается мой обработчик get.


person friedo    schedule 12.10.2012    source источник
comment
Было ли TMPL_ROOT предназначено быть INCLUDE_PATH? Template::Toolkit ничего не отображает, если не может найти шаблон.   -  person RobEarl    schedule 12.10.2012
comment
Ага, да, не знаю, откуда взялся TMPL_ROOT. (Сегодня пятница.) Я все еще наблюдаю то же поведение. :(   -  person friedo    schedule 12.10.2012


Ответы (1)


После просмотра исходника из Mojolicious::Plugin::TtRenderer::Engine, Я понял. Плагин игнорирует параметр INCLUDE_PATH, переданный в Template Toolkit, и вместо этого получает путь из $app->renderer_paths. Поэтому обновляю мой код, чтобы включить:

app->renderer->default_handler( 'tt' );
app->renderer->paths( [ './tmpl' ] );

заставляет это работать.

person friedo    schedule 12.10.2012