我有一个基于mojolicious的小应用程序。我在公共目录中有index.html。当用户要求' /'。
时,我希望有这个文件的路由我写了两个解决方案,但我不喜欢它们。
第一个解决方案 - 添加简单的控制器。
sub stratup {
//...
$r->get('/')->to('general#index_html');
//...
}
package MyPackage::General;
use Mojo::Base 'Mojolicious::Controller';
use strict;
use warnings;
sub index_html {
my $self = shift;
$self->render_static('index.html');
return;
}
1;
第二个解决方案 - 添加钩子
sub startup {
my $self = shift;
$self->hook(before_dispatch => sub {
my $self = shift;
if ($self->req->url eq '/') {
$self->req->url( Mojo::URL->new('/index.html') );
}
});
我想要的是什么:
$r->get('/')->to('/index.html');
或类似的东西。
P.S。我知道,通常使用nginx / apache,但我使用morbo来运行代码。
答案 0 :(得分:1)
你想:
$r->get('...')->to(cb => sub {
my $c = shift;
$c->reply->static('index.html')
});
(只要你在2014-09-26的Mojolicous 5.45之后)
答案 1 :(得分:0)
到目前为止最简单的方法是
get "/" => "index";