首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mojolicious中的“动态”路由

Mojolicious中的“动态”路由
EN

Stack Overflow用户
提问于 2011-05-05 21:38:57
回答 1查看 1.8K关注 0票数 7

我想在我的Mojolicious应用程序中实现类似于“动态”路由的东西。我有一些预定义的“静态”路由和一个带有URL别名的DB表:'/alias‘-> '/URL’。现在我在动态定义路由,它看起来像这样:

代码语言:javascript
复制
before_dispatch => sub { 
  my ($self, $controller) = @_; 
  my $path = $controller->tx->req->url->path->to_string; 
  if ( my $alias = $controller->app->model->alias->find({ alias => $path }) ) { 
    my $match = Mojolicious::Routes::Match->new( get => $alias->{uri} ); 
    my $routes = $controller->app->routes; 
    $match->match( $routes ); 
    $routes->route( $path )->to( $match->captures ); 
  } 

但是有没有更好的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2011-06-23 03:00:04

您在运行时添加路由,这似乎是一种很好的方法(尽管您可能应该在覆盖路由之前检查它是否存在)。您也可以使用通配符占位符作为一个总括,然后稍后传递请求。

http://mojolicio.us/perldoc/Mojolicious/Guides/Routing#Wildcard_Placeholders

代码语言:javascript
复制
$r->get('/(*everything)' )->to('mycontroller#aliases');
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5898637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档