如何将未找到的用户定义错误页面和服务器错误页面重定向到用户定义页面Mojolicious lite
答案 0 :(得分:8)
您可以在liteapp末尾为名为exception.html.ep
或not_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);
};