Thank you very much! That does what I want and is clear to me:
use Plack::Builder;
use Plack::MIME;
my $expr = qr{\.c|\.cpp|\.csv|\.dat|\.dpl|\.gp|\.h|\.hpp|\.html|
\.ini|\.java|\.js|makefile|\.m|\.mac|
\.pl|\.pm|\.pod|\.py|readme|\.sch|\.sh|\.txt}xi;
builder {
# normal behaviour outside of downloads
enable 'Plack::Middleware::Static',
path => qr{^/html/(?!downloads/)},
root => '.';
# plain text for non binary download files
enable 'Plack::Middleware::Static',
path => qr{^/html/downloads/.*($expr)$},
root => '.',
content_type => 'text/plain';
# download only for the other download files
enable 'Plack::Middleware::Static',
path => qr{^/html/downloads/.*(?!$expr)$},
root => '.',
content_type => 'mime/type';
mount "/" => $app1;
mount "/imggenerator.pl" => $app2;
};
|