0

私の理解では、Template::Alloy::TTはTemplate Toolkitと交換可能である必要がありますが、一方を他方と交換しようとするといくつかの問題が発生します。ビューファイルの設定は次のとおりです。

package maypp::View::HTML;
use strict;
use base 'Catalyst::View::TT';

__PACKAGE__->config({
    INCLUDE_PATH => [
        myapp->path_to( 'root', 'src' ),
        myapp->path_to( 'root', 'lib' ),
    ],  
    PRE_PROCESS  => 'config/main',
    WRAPPER      => 'site/wrapper',
    ERROR        => 'error.html',
    TIMER        => 0,
    render_die   => 1,
    COMPILE_DIR => '/tmp/compiled_templates', #caches compiled templates
    STAT_TTL => 1, #how long to cache templates before seeing if there are any changes
    TEMPLATE_EXTENSION => '.html',
});

に変更Catalyst::View::TTするCatalyst::View::TT::Alloyだけで使い始めることができると思いましたTemplate::Alloy(これは以前の手順でした)。ただし、これを変更するたびに、正しい出力が得られません。以下は私のラッパーファイルです:

[% IF template.name.match('\.(css|js|txt)');
    debug("Passing page through as text: $template.name");
     content;
   ELSE;
       debug("Applying HTML page layout wrappers to $template.name\n");
       content WRAPPER "$host/site/html" + "$host/site/layout";
   END;
-%]

site/html処理されますが、正規のものを使用したときのようにはsite/layout入りません(通常はin に入ります)。ここで私が間違っていることはありますか?速度を上げるために使用したいのですが、それは私がそれを機能させることができる場合に限られます:)助けてくれてありがとう!site/htmlTemplate Toolkitsite/layout[% content %]site/htmlTemplate::Alloy

4

1 に答える 1

0

+暗闇の中で突き刺すだけで、TT::Alloy は複数の WRAPPERディレクティブをサポートしていない可能性があると思います。TT 開発のかなりの年で、私は一度も使用したことがありませんが、どこかで人気がないと言っているわけではありません。私の経験では、アプリはコンテキストに基づいてラッパー A とラッパー B を切り替える可能性がありますが、B を A 内にラップしますか? それほどでもない。

WRAPPERただし、常にそれを行う必要がある場合は、2番目のディレクティブを中に入れてみません$host/site/html.ttか?

于 2013-05-29T23:54:13.840 に答える