Почему мое приложение Catalyst не может читать мои файлы Template Toolkit? - PullRequest
1 голос
/ 13 сентября 2009

Я пытаюсь заставить работать фреймворк Catalyst, используя Template Toolkit, и у меня возникают проблемы с Template::Provider. Я изолировал проблему для звонков на stat. В Template::Provider::_init вызовы stat работают правильно, однако в других функциях вызовы stat возвращают []. Кажется, что Template::Provider делает какие-то странные вещи для кеширования, но я не могу понять, что именно. У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ: Немного подробнее:

Я пытаюсь перейти с сервера разработки Catalyst на Apache / mod_perl. Я получаю 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;
}

Практически та же проблема, что и здесь кто-то описал: http://www.gossamer -threads.com / lists / катализатор / users / 14888

1 Ответ

4 голосов
/ 13 сентября 2009

Предполагая, что ваши файлы на самом деле находятся в каталоге /home/myuser/pathtosite (а не в подкаталоге), похоже, что это может быть проблемой с пропуском, так как процесс Catalyst не может прочитать файлы там. Если вы работаете в среде SELinux, это также может быть связано с контекстом безопасности (например, тип контекста безопасности httpd_sys_content_t).

Можете ли вы сделать некоторую отладку, чтобы убедиться, что файлы видны в процессе Catalyst, прежде чем он попытается отобразить шаблон?

...