¿Por qué mi aplicación Catalyst no puede leer mis archivos de Template Toolkit?
-
06-07-2019 - |
Pregunta
Estoy intentando que el Catalyst
funcione para trabajar con Template Toolkit
, y tengo problemas con Template :: Provider
. He aislado el problema de las llamadas a stat
. En Template :: Provider :: _ init
, las llamadas a stat
funcionan correctamente, sin embargo, en otras funciones, las llamadas a stat return []. Parece que Template :: Provider
está haciendo algo cosas raras de almacenamiento en caché, pero no puedo entender qué. ¿Alguien tiene alguna idea?
EDITAR: Un poco más de detalle:
Estoy tratando de pasar del servidor de desarrollo Catalyst a Apache / mod_perl. Obtengo un No se pudo procesar el error de archivo de plantilla "- mytemplate.tt: no se encontró"
error. Aquí está el volcado de depuración de mi configuración:
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;
}
Prácticamente el mismo problema que alguien describió aquí: http: // www.gossamer-threads.com/lists/catalyst/users/14888
Solución
Suponiendo que sus archivos estén realmente en el directorio / home / myuser / pathtosite
(y no en un subdirectorio), parece que podría ser un problema de permeabilidad con el proceso de Catalyst que no puede leer el archivos allí. Si está ejecutando en un entorno SELinux, también podría tener que ver con el contexto de seguridad (por ejemplo, tipo de contexto de seguridad httpd_sys_content_t
).
¿Puede hacer alguna depuración para asegurarse de que los archivos son visibles desde el proceso Catalyst en primer lugar, antes de que intente renderizar la plantilla?