내 이해에 따라 Template::Alloy::TT은 Template Toolkit으로 바꿀 수 있어야합니다. 그러나 다른 하나와 교환하는 데 문제가 있습니다. 여기 내보기 파일에 대한 설정입니다 :perl Template :: 촉매가 제대로 표시되지 않는 합금
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::Alloy
-Catalyst::View::TT
내가 (이 전에 저를위한 절차되었습니다) Template::Alloy
사용을 시작해야했던 모든 것이 변경. 그러나, 내가 이것을 바꿀 때마다 나는 정확한 결과를 얻지 못한다. 다음은 내 래퍼 파일입니다 : 난 그냥 일반 Template Toolkit
(일반적으로 site/layout
이 site/html
에 [% content %]
로 전환)를 사용할 때하는 것처럼
[% 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
는 site/html
로하지 않습니다. 내가 여기서 잘못하고 있는게 있니? 나는 속도 증가를 위해 Template::Alloy
를 사용하고 싶습니다. 그러나 그것이 작동 할 수있을 때만입니다 :) 도움을 주셔서 감사합니다!
글쎄요 'content WRAPPER/site/html + site/layout;'은 잘 작동하지만 도메인에 따라 다른 템플릿을 표시하려면'$ host'가 필요합니다. 두 번째'WRAPPER' 지시자를'$ host/site/html.tt'에 넣으면'[% content %] 대신'[% content WRAPPER $ host/site/layout "%] ]'지금 내가 가진 것처럼? – srchulo
그런 경우, 아마'$ host'의 보간법에 문제가 있습니까? 'host _ '/ site/html''을 시도해보고 차이가 있는지 확인하십시오. – RET
나는 그것을 시도했지만 다음과 같은 에러가 난다 :'file error -/site/layout 절대 경로는 허용되지 않는다. (절대 경로 설정)' – srchulo