Я разрабатывал свое первое приложение Mojolicious. До сих пор я запускал его из каталога разработки, но теперь я хочу установить его на рабочие серверы. mojo generate app
создал каталоги templates/ и public/, которые я использовал для хранения шаблонов и статических файлов. Я создал простой дистрибутив с помощью Dist::Zilla, но не смог получить доступ к templates/ и public/ во время выполнения.
Решение, с которым я пришел, состоит в том, чтобы переместить templates/ и public/ в новый каталог share/ и позволить File::ShareDir (или плагину Dist::Zilla ShareDir) подобрать его, чтобы я мог настроить соответствующие пути в моем *_mode методы:
sub development_mode{
my $app = shift;
push @{$app->static->paths}, rel2abs(catdir('share', 'public') );
push @{$app->renderer->paths}, rel2abs(catdir('share', 'templates') );
}
sub production_mode{
my $app = shift;
push @{$app->static->paths}, catdir(dist_dir('FooBar'), 'public') ;
push @{$app->renderer->paths}, catdir(dist_dir('FooBar'), 'templates') ;
}
Есть ли более официальный способ сделать это?