2011-12-12 3 views
0

모든 요청을 처리하기 위해 Catalyst를 사용하고 싶습니다 : html (Template Toolkit과 혼합)과 Catalyst에 의해 처리되는 것이 정상입니다. 나는 Catalyst :: Plugin :: Static :: Simple을 알고있다. 그러나 단순히 정적으로 파일을 출력하기 때문에 설명하는대로 보이지 않는다.Catalyst 프레임 워크를 통해 모든 .html 파일을 어떻게 동적으로 처리 할 수 ​​있습니까?

예를 들어, 사용자가 ajax 또는 SSI를 사용하지 않고 index.html에 로그인했는지 여부를 표시하고자합니다. 그 외에 다른 많은 경우가 있습니다. 이에 대한 간단한 대답은 아마이

... 포인터, RET에 대한

+0

을 사용하면 사용자가 로그인되어 있는지 여부를 표시하는 경우, 그것은 동적 페이지하지 않습니다 ? – mob

+0

예, 그게 사실입니까? 원래 설명을 바꿀 것입니다. – thealexbaron

+0

URL의 끝이 * .html인지 확인하고 파일이 있는지 확인한 다음 $ c-> stash -> {template}로 설정하는 Root.pm에 자동 하위 항목이 있습니까? ? – thealexbaron

답변

0

감사합니다. 내 솔루션은 꽤 간단하게 밝혀졌다.

필자는 직접 파일을 제공하기 전에 Catalyst 응용 프로그램에 nginx 구성 지점을 설정하고 myapp.pm의 TT 구성에 내 html 파일의 경로를 추가했습니다. 여기

내가 기본 서브 루틴 내 Root.pm 컨트롤러에 추가 된 조각의 기초입니다

if($c->req->path =~ m{\.html$} || $c->req->path =~ m{\.htm$}) { 
    $c->stash->{template} = $c->req->path; 
    $c->detach; 
} 
elsif($c->req->path !~ m{[.]+}) { 
    $c->stash->{template} = $c->req->path . '/index.html'; 
    $c->detach; 

}