디자이너에게 꽤 유연한 Catalyst 앱을 만들려고합니다. 정적 콘텐츠가 포함 된 새 페이지를 추가해야하는 경우 Catalyst
에 들어가서 해당 페이지 템플릿을 만들기 전에 해당 작업을 추가 할 필요가 없습니다. 나는 그것이 name.html
이라는 템플릿을 추가하면 name
동작 없이도 Catalyst
앱이 http://www.domain.com/name.html
을 표시 할 수 있습니다. 현재 I는 다음과 같습니다 루트 컨트롤러 서브 루틴이 있습니다촉매 템플릿 툴킷 템플릿을 찾을 수 없음 404
sub any_template :Regex('(.+)\.html$') {
my ($self, $c) = @_;
$c->stash(
template => $c->action . '.html',
);
}
을하고 '.html 중에서'로 끝나는 모든 요청은 그 이름으로 템플릿을 찾을 수 있도록이 그것을 있습니다. 그러나 존재하지 않는 템플릿에 대해 URL을 요청하면 Template Toolkit은 템플릿을 렌더링 할 수 없다는 오류를 발생시킵니다. 템플릿이 존재하지 않기 때문에 의미가 있습니다. 그러나 템플릿이없는 경우 내 404 찾을 수없는 페이지를 대신 표시 할 수 있습니다. 이것을 할 수 있습니까? 또는 누군가가 Catalyst
앱에 빈 작업을 추가하지 않고도 템플릿 페이지를 만들 수있는 더 나은 방법을 찾고 있습니까? 필자는 perl의 -e 파일 테스트를 사용하여 파일 시스템에 템플릿이 있는지 확인할 수 있지만 더 좋은 방법은 없을까요? 감사!
[%
debug("Applying HTML page layout wrappers to $template.name\n");
content WRAPPER "$host/site/html" + "$host/site/layout";
-%]
이
는 대부분 TTSite에 의해 생성 된 :UPDATE는
이처럼 내 현재 래퍼 모습입니다. 어쨌든 RET에서 제안한 것과 비슷한 것을 할 수 있습니까?이 경우 실패 할 경우 try catch 블록을 사용하여 404 페이지를 사용할 수 있습니까?
[%-
TRY;
content WRAPPER "$host/site/html" + "$host/site/layout";
CATCH file;
"File Error! $error.info";
CATCH;
"Error: $error.info!";
END;
-%]
그리고 그것이 페이지를 찾을 수없는 파일 오류가 있음을 말할 것이다 :
Couldn't render template test.html: file error - test.html: not found
이
UPDATE는
나는이 내 래퍼 템플릿을 업데이트하려고했습니다
그러나 내 catch 블록 중 하나에 가지 않습니다. 내가 다른 곳에 넣어야 할까? 이것은 내가 찾고 있어요 정확히 무엇
Note that the DEFAULT option (disabled by default) allows you to specify a default
file to be used any time a template file can't be found. This will prevent file
exceptions from ever being raised when a non-existant file is requested (unless,
of course, the DEFAULT file your specify doesn't exist). Errors encountered once
the file has been found (i.e. read error, parse error) will be raised as file
exceptions as per usual.
하지만,이를 사용하는 방법에는 예는 없다 :
UPDATE
Template Toolkit 문서화는 말한다. 누구든지 DEFAULT
옵션을 사용하는 방법을 알고 있습니까?
그러나 변경해야 할 콘텐츠는 페이지 중간에있는 템플릿 시스템을 사용하면 얻을 수있는 이점이 없습니다. 내 디자이너가 어디서나 동일한 머리글, 꼬리말 등을 반복하지 않아도되기를 바랍니다. 그래서 '정적 인'컨텐츠이지만, 실제로 Template Toolkit과 같은 템플릿 시스템의 이점을 원합니다. – srchulo