【问题标题】:mojolicious app conrollers doesn t render the template they should rendermojolicious 应用程序控制器不呈现他们应该呈现的模板
【发布时间】:2017-08-31 12:04:26
【问题描述】:

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


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

Kantine/控制器: 餐厅.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/控制器/餐厅:

包控制器::餐厅;

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" 工作正常(得到一个空白页)但 "curl http://127.0.0.1:3000/restaurant" 没有(找不到页面)。我不明白为什么!如果您发现问题所在..

谢谢!

【问题讨论】:

  • 拼写错误?您在一个地方有loadData,在另一个地方有loadDate(感谢您剪切和粘贴您的真实代码)。
  • 修复它,但似乎还有更多!我也会在帖子中编辑它!我添加了一个日志文件,它告诉我“控制器“Kantine::Restaurant”不存在”,我会试着看看为什么:)

标签: perl routing mojolicious


【解决方案1】:

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

【讨论】:

  • 是的,我的路径错了,我无法再访问该文件,所以我不能确定,但​​你必须很接近。
猜你喜欢
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
相关资源
最近更新 更多