Mojolicious lite how to redirect for not found and server error pages to user defined error page

StackOverflow https://stackoverflow.com/questions/13272220

Question

How to redirect user defined error page for not found and server error pages to user define page Mojolicious lite

Était-ce utile?

La solution

You can add a template for your custom page named exception.html.ep or not_found.html.ep at the end of your liteapp.

For example:

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>

For a reference, see the Mojolicious rendering guide.

The renderer will always try to find exception.$mode.$format.* or not_found.$mode.$format.* before falling back to the built-in default templates.

Autres conseils

I wanted to run some code in my 404 page so borrowing from here https://groups.google.com/forum/#!topic/mojolicious/0wzBRnetiHo

I made a route that catches everything and placed it after all my other routes, so urls that don't match routes fall through to this:

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);
};
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top