2

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/catalyst/users/14888

4

1 に答える 1

4

ファイルが実際に/home/myuser/pathtositeディレクトリ (サブディレクトリではなく) にあると仮定すると、これは、Catalyst プロセスがそこにあるファイルを読み取ることができないという perimssion 問題である可能性があるようです。SELinux 環境で実行している場合は、セキュリティ コンテキスト (例: security context type httpd_sys_content_t) も関係している可能性があります。

テンプレートのレンダリングを試みる前に、最初に Catalyst プロセスからファイルが見えるようにするためにデバッグを行うことはできますか?

于 2009-09-13T12:10:19.917 に答える