[Catalyst] Opinions on static::simple - with caching
Toby Corkindale
toby at dryft.net
Mon Jan 31 07:17:42 GMT 2011
I'm wondering if the following plugin I've written is misguided..
It enables proxy caches and browsers to better cache the files served
by Static::Simple..
However, I suppose in situations where that matters, you shouldn't be
serving files via Static::Simple..
And the regular Static::Simple still provides Last-Modified headers,
which do allow browsers to perform some caching.
What do you think?
To enable this plugin, you need:
use Catalyst qw(
...
Static::Simple
Static::Caching
);
-------------------------Caching.pm----------------------------------
package Catalyst::Plugin::Static::Caching;
use Moose::Role;
requires '_serve_static'; # From Catalyst::Plugin::Static::Simple
after _serve_static => sub {
my $c = shift;
# Avoid setting an expires if the parent never found the file..
return unless (defined $c->response->body
and ref($c->response->body) eq 'IO::File');
# Tell browsers they can cache files for a couple of hours:
$c->res->headers->expires(time() + 7200);
# Tell Firefox it's OK to cache, even over SSL:
$c->res->headers->header('Cache-control' => 'public');
};
1;
More information about the Catalyst
mailing list