Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Perl CSS Other
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
examples
lib/Mojolicious/Plugin
t
.gitignore
Build.PL
Changes
LICENSE
META.json
README.md
cpanfile

README.md

NAME

Mojolicious::Plugin::Directory - Serve static files from document root with directory index

SYNOPSIS

# simple usage
use Mojolicious::Lite;
plugin( 'Directory', root => "/path/to/htdocs" )->start;

# with handler
use Text::Markdown qw{ markdown };
use Path::Class;
use Encode qw{ decode_utf8 };
plugin('Directory', root => "/path/to/htdocs", handler => sub {
    my ($c, $path) = @_;
    if ( -f $path && $path =~ /\.(md|mkdn)$/ ) {
        my $text = file($path)->slurp;
        my $html = markdown( decode_utf8($text) );
        $c->render( inline => $html );
    }
})->start;

or

> perl -Mojo -E 'a->plugin("Directory", root => "/path/to/htdocs")->start' daemon

DESCRIPTION

Mojolicious::Plugin::Directory is a static file server directory index a la Apache's mod_autoindex.

METHODS

Mojolicious::Plugin::Directory inherits all methods from Mojolicious::Plugin.

OPTIONS

Mojolicious::Plugin::Directory supports the following options.

root

# Mojolicious::Lite
plugin Directory => { root => "/path/to/htdocs" };

Document root directory. Defaults to the current directory.

If root is a file, serve only root file.

auto_index

# Mojolicious::Lite
plugin Directory => { auto_index => 0 };

Automatically generate index page for directory, default true.

dir_index

# Mojolicious::Lite
plugin Directory => { dir_index => [qw/index.html index.htm/] };

Like a Apache's DirectoryIndex directive.

dir_page

# Mojolicious::Lite
plugin Directory => { dir_page => $template_str };

a HTML template of index page

handler

# Mojolicious::Lite
use Text::Markdown qw{ markdown };
use Path::Class;
use Encode qw{ decode_utf8 };
plugin Directory => {
    handler => sub {
        my ($c, $path) = @_;
        if ($path =~ /\.(md|mkdn)$/) {
            my $text = file($path)->slurp;
            my $html = markdown( decode_utf8($text) );
            $c->render( inline => $html );
        }
    }
};

CODEREF for handle a request file.

If not rendered in CODEREF, serve as static file.

json

# Mojolicious::Lite
# /dir (Accept: application/json)
# /dir?format=json
plugin Directory => { json => 1 };

Enable json response.

AUTHOR

hayajo hayajo@cpan.org

CONTRIBUTORS

Many thanks to the contributors for their work.

  • ChinaXing

SEE ALSO

Plack::App::Directory

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Something went wrong with that request. Please try again.