Catalyst::Plugin::Static::Simple: Always send the Expires header

Otherwise Firefox will get confused.
This commit is contained in:
Eelco Dolstra 2013-02-26 01:24:32 +01:00
parent d2b6645e82
commit f7e619617e

View File

@ -2,14 +2,24 @@ Send an ETag header, and honour the If-None-Match request header
diff -ru -x '*~' Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm diff -ru -x '*~' Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm
--- Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm 2012-05-04 18:49:30.000000000 +0200 --- Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Static/Simple.pm 2012-05-04 18:49:30.000000000 +0200
+++ Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm 2013-02-25 18:05:08.466813337 +0100 +++ Catalyst-Plugin-Static-Simple-0.30/lib/Catalyst/Plugin/Static/Simple.pm 2013-02-25 22:57:18.667150181 +0100
@@ -187,11 +187,21 @@ @@ -187,16 +187,27 @@
my $type = $c->_ext_to_type( $full_path ); my $type = $c->_ext_to_type( $full_path );
my $stat = stat $full_path; my $stat = stat $full_path;
+ # Tell Firefox & friends its OK to cache, even over SSL: - $c->res->headers->content_type( $type );
- $c->res->headers->content_length( $stat->size );
- $c->res->headers->last_modified( $stat->mtime );
# Tell Firefox & friends its OK to cache, even over SSL:
- $c->res->headers->header('Cache-control' => 'public');
+ #$c->res->headers->header('Cache-control' => 'public'); + #$c->res->headers->header('Cache-control' => 'public');
+ +
+ $c->res->headers->last_modified( $stat->mtime );
# Optionally, set a fixed expiry time:
if ($config->{expires}) {
$c->res->headers->expires(time() + $config->{expires});
}
+ if ($config->{send_etag}) { + if ($config->{send_etag}) {
+ my $etag = '"' . $stat->mtime . '-' . $stat->ino . '-'. $stat->size . '"'; + my $etag = '"' . $stat->mtime . '-' . $stat->ino . '-'. $stat->size . '"';
+ $c->res->headers->header('ETag' => $etag); + $c->res->headers->header('ETag' => $etag);
@ -19,11 +29,9 @@ diff -ru -x '*~' Catalyst-Plugin-Static-Simple-0.30-orig/lib/Catalyst/Plugin/Sta
+ } + }
+ } + }
+ +
$c->res->headers->content_type( $type ); + $c->res->headers->content_type( $type );
$c->res->headers->content_length( $stat->size ); + $c->res->headers->content_length( $stat->size );
$c->res->headers->last_modified( $stat->mtime ); +
- # Tell Firefox & friends its OK to cache, even over SSL: my $fh = IO::File->new( $full_path, 'r' );
- $c->res->headers->header('Cache-control' => 'public'); if ( defined $fh ) {
# Optionally, set a fixed expiry time: binmode $fh;
if ($config->{expires}) {
$c->res->headers->expires(time() + $config->{expires});