NAME
Mira::Server::Static - Serve static files with HTTP::Server::Simple
SYNOPSIS
package
MyServer;
use
Mira::Server::Static;
my
$webroot
=
'/var/www'
;
sub
handle_request {
my
(
$self
,
$cgi
) =
@_
;
if
( !
$self
->serve_static(
$cgi
,
$webroot
) ) {
"HTTP/1.0 404 Not found\r\n"
;
$cgi
->header,
$cgi
->start_html(
'Not found'
),
$cgi
->h1(
'Not found'
),
$cgi
->end_html;
}
}
package
main;
my
$server
= MyServer->new();
$server
->run();
DESCRIPTION
this mixin adds a method to serve static files from your HTTP::Server::Simple subclass.
this module is a copy from HTTP::Server::Simple::Static, with this changes:
replace File::LibMagic by LWP::MediaTypes
add index.html to paths is not equal: m{/$} or m{\..*?$}
SUBROUTINES/METHODS
- serve_static( $cgi, $base )
-
Takes a reference to the CGI object and a document root path, and tries to serve a static file. Returns 0 if the file does not exist, returns 1 on success.
This method sets the
Date
andLast-Modified
HTTP headers when sending a response for a valid file. Further to this, the method supports clients which send anIf-Modified-Since
HTTP header in the request, it will return a 304Not Modified
response if the file is unchanged. See RFC-2616 for full details.If the client makes a
HEAD
request then no message body will be returned in the response.
BUGS AND LIMITATIONS
Bugs or wishlist requests should be submitted via http://rt.cpan.org/
DEPENDENCIES
The LWP::MediaTypes module is used to detect the MIME-type of a file. The URI::Escape module is used for URI handling. The HTTP::Date module is used to format the timestamp in the Last-Modified HTTP header.
SEE ALSO
HTTP::Server::Simple, HTTP::Server::Simple::CGI, HTTP::Server::Simple::Static
AUTHOR
kiamazi kiavash@cpan.org
LICENSE AND COPYRIGHT
Copyright 2017. kiamazi kiavash@cpan.org
You may distribute this code under the same terms as Perl itself.