[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