【发布时间】:2011-11-29 12:07:34
【问题描述】:
通配符占位符 (*) 可以完全匹配所有内容。 但我担心它不会......
我有一个使用以下方法的网络服务:
get '/*param' => sub {
my $self = shift;
my $param = $self->stash('param');
$self->app->log->debug($param);
}
当我查询我的服务时:http://localhost:3000/search 然后该方法记录“搜索”,这没关系 但 当我查询我的服务时:http://localhost:3000/search?page=1 然后该方法还会记录“搜索”,这不是 IMO
我也试过替换
get '/*param' => sub {
与
get '/:param' => [param => qr/.*/] => sub {
但结果是一样的。
有人知道解决这个问题的方法吗? 还是我应该将此作为错误提交?
问候, 洛伦佐
更新 对于有同样问题的人,我已经像这样解决了这个问题:
get '/*path' => sub {
my $self = shift;
my $path = $self->stash('path');
my @params = $self->param;
if (scalar @params > 0) {
$path .= '?';
foreach my $param (@params) {
$path .= $param . '=' . $self->param($param) . '&';
}
$path = substr($path, 0, length($path) - 1);
}
$self->app->log->debug($path);
}
【问题讨论】:
标签: perl url-routing mojolicious