builder {
enable 'ContentLength';
- enable 'Static', path => qr,/static/,;
+ enable_if { $_[0]->{PATH_INFO} =~ qr,^/static/,} Header => set => ['Cache-Control', 'public, max-age=604800'];
+ enable 'Static', path => qr,^/static/,;
enable 'Log4perl', category => 'plack', conf => 'log.conf';
enable \&require_admin;
enable_if \&some_auth_required, 'Auth::Basic', authenticator => \&authenticate, realm => 'Gruntmaster 6000';
local $Log::Log4perl::caller_depth = $Log::Log4perl::caller_depth + 1;
$_[0]->{'psgix.logger'}->({qw/level debug message/ => $_[1]})
};
- *{"${caller}::reply"} = sub { [200, ['Content-Type' => 'text/plain'], [ @_ ] ] };
+ *{"${caller}::reply"} = sub { [200, ['Content-Type' => 'text/plain', 'Cache-Control' => 'no-cache'], [ @_ ] ] };
*{"${caller}::purge"} = sub {
return unless $ENV{PURGE_HOST};
my $req = HTTP::Request->new(PURGE => "http://$ENV{PURGE_HOST}$_[0]");
$self->_generate($htc, $lang, @args);
my $out = $htc->output;
utf8::downgrade($out);
- [200, ['Content-Type' => 'text/html', 'Content-Language' => $_[1], 'Vary' => 'Accept-Language', 'X-Forever' => 1], [ $out ] ]
+ [200, ['Content-Type' => 'text/html', 'Content-Language' => $_[1], 'Vary' => 'Accept-Language', 'X-Forever' => 1, 'Cache-Control' => 'max-age=' . $self->max_age], [ $out ] ]
}
sub _generate {}
+sub max_age { 60 }
+
sub variants {
[ map { [ $_, 1, 'text/html', undef, undef, $_, undef ]} keys $_[0]->TEMPLATES ]
}