我有一个基于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');
或类似的东西.
解决方法
你要:
$r->get('...')->to(cb => sub { my $c = shift; $c->reply->static('index.html') });
(只要你在Mojolicous之后5.45 2014-09-26)