我正在尝试使用天神模块,但它失败了,因为它无法找到模板文件,但它存在.我已经在模块中添加了一些调试语句,但它没有通过
return $filepath if (-f $filepath);
Run Code Online (Sandbox Code Playgroud)
即使$ filepath是正确的.我尝试过一个独立的脚本,它工作正常但是当我将它复制到mod_perl脚本时它失败了.有任何想法吗?
$ filepath是一个完整的绝对路径:/something/another/dir/2/filename.plhtml
这是模块的功能.注意我的"调试"...它打印到文件的正确路径777但它从不打印YES.
sub find_template_file {
my ($this, $filename) = @_;
my $path = $this->{path};
if ($path) {
my $sep = $^O eq 'MSWin32' ? '\\\\' : '/';
foreach my $dirname (@$path) {
my $filepath = $dirname . $sep . $filename;
print STDERR "--$filepath--\n";
if (-f $filepath){
print STDERR "--- YES ---\n\n";
}
return $filepath if (-f $filepath);
}
} else {
return $filename if (-f $filename);
}
my $s = $path ? ("['" . join("','", @$path) . "']") : '[]';
die "Tenjin::Engine: $filename not found (path=$s).";
Run Code Online (Sandbox Code Playgroud)
}
失败了
天神::引擎:未找到index.plhtml(path = ['/ var/2.0/templates/search']).在/usr/lib/perl5/site_perl/5.8.8/Tenjin/Engine.pm第56行.\n
Apache进程还需要在每个子目录上执行读取和执行访问,直到完整路径.(如果涉及符号链接,确定访问的内容将更加棘手).
如果您可以在Web服务器上调试脚本,您可能希望让Perl向您发送错误消息:
if (! -f $filename) {
open(ACK, "<", $filename);
print STDERR "Couldn't open $filename because of: $!\n";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
473 次 |
| 最近记录: |