NAME
MojoX::Dispatcher::Static - Serve Static Files
SYNOPSIS
use MojoX::Dispatcher::Static;
my $dispatcher = MojoX::Dispatcher::Static->new(
prefix => '/images',
root => '/ftp/pub/images'
);
my $success = $dispatcher->dispatch($c);
DESCRIPTION
MojoX::Dispatcher::Static is a dispatcher for static files.
ATTRIBUTES
prefix
my $prefix = $dispatcher->prefix;
$dispatcher = $dispatcher->prefix('/static');
Returns the path prefix if called without arguments. Returns the invocant if called with arguments. If defined, files will only get served for url paths beginning with this prefix.
types
my $types = $dispatcher->types;
$dispatcher = $dispatcher->types(MojoX::Types->new);
Returns a Mojo::Types object if called without arguments. Returns the invocant if called with arguments. If no type can be determined, text/plain
will be used.
root
my $root = $dispatcher->root;
$dispatcher = $dispatcher->root('/foo/bar/files');
Returns the root directory from which files get served if called without arguments. Returns the invocant if called with arguments.
METHODS
MojoX::Dispatcher::Static inherits all methods from Mojo::Base and implements the follwing the ones.
dispatch
my $success = $dispatcher->dispatch($c);
Returns false if a file matching the request could be found and a response be prepared. Returns true otherwise. Expects a MojoX::Context object as first argument.
serve
my $success = $dispatcher->serve($c, 'foo/bar.html');
Returns false if a readable file could be found under root
and a response be prepared. Returns true otherwise. Expects a MojoX::Context object and a path as arguments. If no type can be determined, text/plain
will be used. A Last-Modified
header will always be set according to the last modified time of the file.
serve_404
my $success = $dispatcher->serve_404($c);
my $success = $dispatcher->serve_404($c, '404.html');
serve_500
my $success = $dispatcher->serve_500($c);
my $success = $dispatcher->serve_500($c, '500.html');
serve_error
my $success = $dispatcher->serve_error($c, 404);
my $success = $dispatcher->serve_error($c, 404, '404.html');