Provided by: libmojolicious-perl_6.15+dfsg-1ubuntu1_all bug

NAME

       Mojolicious::Static - Serve static files

SYNOPSIS

         use Mojolicious::Static;

         my $static = Mojolicious::Static->new;
         push @{$static->classes}, 'MyApp::Controller::Foo';
         push @{$static->paths}, '/home/sri/public';

DESCRIPTION

       Mojolicious::Static is a static file server with "Range", "If-Modified-Since" and "If-None-Match" support
       based on RFC 7232 <http://tools.ietf.org/html/rfc7232> and RFC 7233 <http://tools.ietf.org/html/rfc7233>.

ATTRIBUTES

       Mojolicious::Static implements the following attributes.

   classes
         my $classes = $static->classes;
         $static     = $static->classes(['main']);

       Classes to use for finding files in "DATA" sections with Mojo::Loader, first one has the highest
       precedence, defaults to "main". Only files with exactly one extension will be used, like "index.html".
       Note that these classes need to have already been loaded and added during application startup for files
       to be detected.

         # Add another class with static files in DATA section
         push @{$static->classes}, 'Mojolicious::Plugin::Fun';

   paths
         my $paths = $static->paths;
         $static   = $static->paths(['/home/sri/public']);

       Directories to serve static files from, first one has the highest precedence.

         # Add another "public" directory
         push @{$static->paths}, '/home/sri/public';

METHODS

       Mojolicious::Static inherits all methods from Mojo::Base and implements the following new ones.

   dispatch
         my $bool = $static->dispatch(Mojolicious::Controller->new);

       Serve static file for Mojolicious::Controller object.

   file
         my $asset = $static->file('images/logo.png');
         my $asset = $static->file('../lib/MyApp.pm');

       Build Mojo::Asset::File or Mojo::Asset::Memory object for a file, relative to "paths" or from "classes",
       or return "undef" if it doesn't exist. Note that this method does not protect from traversing to parent
       directories.

         my $content = $static->file('foo/bar.html')->slurp;

   is_fresh
         my $bool = $static->is_fresh(Mojolicious::Controller->new, {etag => 'abc'});

       Check freshness of request by comparing the "If-None-Match" and "If-Modified-Since" request headers to
       the "ETag" and "Last-Modified" response headers.

       These options are currently available:

       etag
           etag => 'abc'

         Add "ETag" header before comparing.

       last_modified
           last_modified => $epoch

         Add "Last-Modified" header before comparing.

   serve
         my $bool = $static->serve(Mojolicious::Controller->new, 'images/logo.png');
         my $bool = $static->serve(Mojolicious::Controller->new, '../lib/MyApp.pm');

       Serve a specific file, relative to "paths" or from "classes". Note that this method does not protect from
       traversing to parent directories.

   serve_asset
         $static->serve_asset(Mojolicious::Controller->new, Mojo::Asset::File->new);

       Serve   a   Mojo::Asset::File   or  Mojo::Asset::Memory  object  with  "Range",  "If-Modified-Since"  and
       "If-None-Match" support.

SEE ALSO

       Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.

perl v5.22.1                                       2015-12-28                           Mojolicious::Static(3pm)