Template Toolkit
을 사용하여 Catalyst
프레임 워크를 작동 시키려고하고 있는데 Template::Provider
과 관련된 문제가 있습니다. 이 문제는 stat
번으로 전화를 걸기 위해 격리되었습니다. Template::Provider::_init
에서는 stat
에 대한 호출이 올바르게 작동하지만 다른 함수에서는 stat return []을 호출합니다. Template::Provider
이 이상한 캐싱 작업을하고있는 것 같지만, 무엇을 알아 내지 못하는 것 같습니다. 누구든지 아이디어가 있습니까?내 Catalyst 응용 프로그램에서 내 Template Toolkit 파일을 읽을 수없는 이유는 무엇입니까?
편집 : 나는 아파치/mod_perl을에 촉매 개발 서버를 이동하기 위해 노력하고있어
:는 A는 자세한 내용을 비트. Couldn't render template "file error - mytemplate.tt: not found"
오류가 발생합니다.
Config
do {
my $a = {
"Action::RenderView" => {
ignore_classes => [
"DBIx::Class::ResultSource::Table",
"DBIx::Class::ResultSourceHandle",
"DateTime",
],
scrubber_func => sub { "???" },
},
"Plugin::ConfigLoader" => {},
home => "/home/myuser/pathtosite",
name => "Stream",
root => bless({
dirs => ["", "home", "myuser", "pathtosite"],
file_spec_class => undef,
volume => "",
}, "Path::Class::Dir"),
static => {
debug => 1,
dirs => [],
ignore_dirs => [],
ignore_extensions => ["tmpl", "tt", "tt2", "html", "xhtml"],
include_path => ['fix'],
mime_types => {},
mime_types_obj => bless({}, "MIME::Types"),
no_logs => 1,
},
};
$a->{static}{include_path}[0] = $a->{root};
$a;
}
꽤 많은 사람이 여기에 설명하는 동일한 문제가 : 여기 내 설정의 디버그 덤프 당신의 파일이 /home/myuser/pathtosite
디렉토리에 실제로 (그리고 하위 디렉토리)입니다 가정 http://www.gossamer-threads.com/lists/catalyst/users/14888
거의 사실상 - 실제로 Linux에서 시스템 Apache 프로세스를 사용하는 경우 사용자가 실행하는 것이 아니라 www_user로 실행되고 파일에 액세스 할 수 없습니다. 자체 실행 프로세스로 개발하는 것이 더 효과적이지만, 루트 만 낮은 포트에 액세스 할 수 있기 때문에 높은 포트 (1024+)로 구성해야합니다. – ijw
고마워요. - 이것이 정답이었습니다. 허가 문제 였어. 앞으로 이것을 읽는 사람을위한 팁 : strace를 사용하면 이러한 종류의 디버깅에 매우 유용합니다. 그것은 프로세스가 만드는 시스템 호출을 보여 주며 나의 경우 아파치가 액세스 거부 오류와 함께 열려고하는 파일을 보여줍니다. ('sudo strace httpd 2> & 1 | grep hello.tt'이 트릭을했습니다) –