perl - 为什么我的 Catalyst 应用程序无法读取我的 Template Toolkit 文件?

标签 perl catalyst template-toolkit

我正在尝试获取Catalyst使用 Template Toolkit 工作的框架,我遇到了 Template::Provider 的问题。我已将问题归咎于对 stat 的调用。在 Template::Provider::_init 中,对 stat 的调用可以正常工作,但在其他函数中,对 stat 的调用会返回 []。看起来像Template::Provider正在做一些奇怪的缓存事情,但我不太明白是什么。大家有什么想法吗?

编辑:更多细节:

我正在尝试从 Catalyst 开发服务器迁移到 Apache/mod_perl。我收到 无法渲染模板“文件错误 - mytemplate.tt:未找到” 错误。这是我的配置的调试转储:

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;
}

与此处描述的问题几乎完全相同:http://www.gossamer-threads.com/lists/catalyst/users/14888

最佳答案

假设您的文件实际上位于 /home/myuser/pathtosite 目录(而不是子目录)中,这似乎可能是 Catalyst 进程无法读取该文件的权限问题那里的文件。如果您在 SELinux 环境中运行,它也可能与安全上下文有关(例如,安全上下文类型 httpd_sys_content_t)。

您能否进行一些调试,以确保 Catalyst 进程在尝试渲染模板之前首先可以看到这些文件?

关于perl - 为什么我的 Catalyst 应用程序无法读取我的 Template Toolkit 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1416520/

相关文章:

perl - 如何配置 Dancer2 和 Template Toolkit 以使用不同的 Stash 模块

perl - 使用模板工具包从列表中过滤项目

perl - Perl 中的 chdir 使用两个字符串 : chdir "/home/$dir1/$dir2"

perl - 如何序列化和反序列化发送到套接字的哈希值?

html - 如何在 Perl 或 Ruby 中替换和增加 img 标签的尺寸?

perl - 为什么 curl POST 请求会使我的 Catalyst::Controller::REST Controller 崩溃?

web-services - Catalyst:安全下载日志文件

perl - Perl 面向对象设计模式

perl - 如何使用 CAM::PDF 获取 PDF 页面中文本字符串的文本方向?