package TestApp;
use Moose;
use Plack::Middleware::Static;
use Plack::App::File;
use Catalyst qw/EnableMiddleware/;
extends 'Catalyst';
my $static = Plack::Middleware::Static->new(
path => qr{^/static/}, root => TestApp->path_to('share'));
__PACKAGE__->config(
'Controller::Root', { namespace => '' },
'Plugin::EnableMiddleware', [
$static,
'Static', { path => qr{^/static2/}, root => TestApp->path_to('share') },
'+TestApp::Custom', { path => qr{^/static3/}, root => TestApp->path_to('share') },
sub {
my $app = shift;
return sub {
my $env = shift;
if($env->{PATH_INFO} =~m/forced/) {
Plack::App::File->new(file=>TestApp->path_to(qw/share static forced.txt/))
->call($env);
} else {
return $app->($env);
}
},
},
],
);
__PACKAGE__->setup;
__PACKAGE__->meta->make_immutable;