背景
我有这个路由
my $foo = $r->get('/foo/:asd')->to('Foo#bar');
在控制器中我只是使用传递的参数渲染一些json
(在Mojolicious::Controller::REST
)
$self->data( 'param' => $self->param('asd') );
问题
向/foo/bar
发送请求时,其工作正常:
{"data":{"param":"bar"}}
但是当我尝试传递包含dot
的字符串,例如电子邮件(email@email.com)时,mojo会将dot
呈现为{{ 1}}。我在第一时间定义的路由不再相关,因为现在模式已更改为slash
解决方案
我被告知解决方案就在这里:
https://github.com/kraih/mojo/blob/master/t/mojolicious/routes.t#L218
这很有意义,但我不明白如何将它与我所拥有的结合起来。
我尝试将foo/:bar/:baz
添加到我的路由中,但是,模式正在发生变化,并且它再次无关紧要。它似乎不会禁用与我的问题相关的点。
我尝试在$foo->pattern->placeholder_start('+');
变量上实现模式方法(这是Mojo的路由 - $r
)
最重要的是,我只需要为某些路由禁用点占位符或完全禁用。
由于
答案 0 :(得分:7)