mojolicious应用程序控制器不会呈现他们应该呈现的模板

时间:2017-08-31 12:04:27

标签: perl routing mojolicious

我将用代码解释我的问题:


首先我的应用程序(ls -R): / Kantine 控制器kantine.conf kantine.pl Kantine.pm模板

Kantine /控制器: Restaurant.pm Sandwich.pm

Kantine /模板: cantine.html.ep


我使用命令“hypnotoad kantine.pl”在hypnotoad下启动它。 一切都很好

Kantine / kantine.pm:

package Kantine;
use strict;
use warnings;

use Mojo::Base 'Mojolicious';

sub startup
{
    my $self = shift;
    my $config = $self->plugin('Config');

    my $r = $self->routes;
    $r->get('/restaurant')->to('restaurant#loadData');
    $r->get('/sandwich')->to('sandwich#loadData');
    $r->get('/test')->to(template => 'cantine');
}

1;

Kantine / Controllers / Restaurant:

package Controllers :: Restaurant;

use strict;
use warnings;

use Mojo::Base 'Mojolicious::Controller';

sub loadData
{
    my $self = shift;
    $self->render('cantine');
}

1;

“curl http://127.0.0.1:3000/test”工作正常(得到一个空白页)但“卷曲http://127.0.0.1:3000/restaurant”没有(找不到页面)。而且我不知道为什么!如果你看到了什么问题..

THX!

1 个答案:

答案 0 :(得分:1)

我很确定您使用Controllers的所有地方都应该是Controller(单数)。 /test路由有效,因为Mojolicious可以在templates中找到该模板,但它不会查找Controllers,因此无法找到Controllers::Restaurant