我有一个基于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');


或类似的东西。

附言我知道,比通常的nginx / apache更好,但是我使用morbo来运行代码。

最佳答案

你要:

$r->get('...')->to(cb => sub {
     my $c = shift;
     $c->reply->static('index.html')
});


(只要您追求Mojolicous 5.45 2014-09-26)

07-24 09:47
查看更多