Mojolicious lite如何将未找到和服务器错误页面重定向到用户定义的错误页面

时间:2012-11-07 14:57:50

标签: perl mojolicious mojolicious-lite

如何将未找到的用户定义错误页面和服务器错误页面重定向到用户定义页面Mojolicious lite

2 个答案:

答案 0 :(得分:8)

您可以在liteapp末尾为名为exception.html.epnot_found.html.ep的自定义页面添加模板。

例如:

use Mojolicious::Lite;
get '/' => sub {
    my $self = shift;
    $self->render(text => "Hello.");
};
app->start;

__DATA__
@@ not_found.html.ep
<!DOCTYPE html>
<html>
  <head><title>Page not found</title></head>
  <body>Page not found <%= $status %></body>
</html>

有关参考,请参阅Mojolicious rendering guide

  

渲染器将始终尝试查找异常。$ mode。$ format。*或   not_found。$ mode。$ format。*在回退到内置默认值之前   模板。

答案 1 :(得分:5)

我想在404页面中运行一些代码,以便从这里借用 https://groups.google.com/forum/#!topic/mojolicious/0wzBRnetiHo

我做了一条抓住所有东西并将其放在我所有其他路线之后的路线,所以不匹配路线的网址会落到这一点:

any '/(*)' => sub {
    my $self = shift;
    $self->res->code(404);
    $self->res->message('Not Found');

    # 404       
    $self->stash( { 
        # ... my stuff in the stash ... 
    } );

    $self->render('mytemplate', status => 404);
};