2

我一直在开发我的第一个 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') ;
}

有没有更官方的方法来做到这一点?

4

1 回答 1

1

不,我就是这样做的,对于Galileo和我的更通用的插件来说都是这样的:Mojolicious::Plugin::InstallablePaths

于 2013-04-10T03:48:46.757 回答