Как вы развертываете приложения Mojolicious на рабочих серверах?

Я разрабатывал свое первое приложение 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') ;
}

Есть ли более официальный способ сделать это?


person user3243135    schedule 09.04.2013    source источник


Ответы (1)


Нет, я так делаю, как для Galileo, так и для моего более общего плагина, который делает это за вас: Mojolicious::Plugin::InstallablePaths.

person Joel Berger    schedule 10.04.2013