我一直在开发我的第一个 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') ;
}
有没有更官方的方法来做到这一点?