`mojo routes` 只显示“/* whatever * whatever”

`mojo routes` just shows "/*whatever * whatever"

我已将 Minimal Routes 中的确切示例复制到 myapp.pl

# Application
package MyApp;
use Mojo::Base 'Mojolicious';

sub startup {
  my $self = shift;

  # Router
  my $r = $self->routes;

  # Route
  $r->get('/welcome')->to(controller => 'foo', action => 'welcome');
}

1;

当我运行mojo routes时,我得到

/*whatever  *  whatever

当我运行mojo routes myapp.pl时,我得到

/*whatever  *  whatever

mojo routes 应该如何运作,当我 运行 mojo --help | grep -i routes 它说,

routes    Show available routes

如果我运行myapp.pl routes,它什么也没有显示。如何获取示例中提供的路线列表?

复制的代码是针对模块的。 Mojo 创建一个启动脚本。此脚本是 routes 命令所需的参数。使用

生成项目
mojo generate app MyApp

然后结帐 script/my_app,它包含

#!/usr/bin/env perl                                                                                       

use strict;                                                                                               
use warnings;                                                                                             

use FindBin;                                                                                              
BEGIN { unshift @INC, "$FindBin::Bin/../lib" }                                                            
use Mojolicious::Commands;                                                                                

# Start command line interface for application                                                            
Mojolicious::Commands->start_app('MyApp');

您将看到您在 lib/MyApp.pm 中复制的文件的代码。你会想要 运行

现在您可以运行

script/my_app routes
/  GET  

它将检查 lib 中的文件以生成路由列表。


感谢 #mojo 中 Freenode (IRC) 上的 Grinnz 和 CandyAngel 提供的支持来回答这个问题。