Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Mojolicious::Static(3)User Contributed Perl DocumentatioMojolicious::Static(3)

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
       for files to be detected, these classes need to have already been
       loaded and added	before "warmup"	is called, which usually happens
       automatically during application	startup.

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

	 # Add another class with static files in DATA section and higher precedence
	 unshift @{$static->classes}, 'Mojolicious::Plugin::MoreFun';

   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';

	 # Add another "public"	directory with higher precedence
	 unshift @{$static->paths}, '/home/sri/themes/blue/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 uses a relative path, but 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 uses	a relative path, but 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.

   warmup
	 $static->warmup;

       Prepare static files from "classes" for future use.

SEE ALSO
       Mojolicious, Mojolicious::Guides, <http://mojolicious.org>.

perl v5.24.1			  2017-01-09		Mojolicious::Static(3)

NAME | SYNOPSIS | DESCRIPTION | ATTRIBUTES | METHODS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Mojolicious::Static&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help