Catalyst::Plugin::Static::Simple: Add ETag support
This should keep browsers from caching Hydra's static files for too long.
This commit is contained in:
parent
d1e614ad73
commit
f6460facd6
@ -0,0 +1,29 @@
|
||||
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
|
||||
--- 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
|
||||
@@ -187,11 +187,21 @@
|
||||
my $type = $c->_ext_to_type( $full_path );
|
||||
my $stat = stat $full_path;
|
||||
|
||||
+ # Tell Firefox & friends its OK to cache, even over SSL:
|
||||
+ #$c->res->headers->header('Cache-control' => 'public');
|
||||
+
|
||||
+ if ($config->{send_etag}) {
|
||||
+ my $etag = '"' . $stat->mtime . '-' . $stat->ino . '-'. $stat->size . '"';
|
||||
+ $c->res->headers->header('ETag' => $etag);
|
||||
+ if (($c->req->header('If-None-Match') // "") eq $etag) {
|
||||
+ $c->res->status(304);
|
||||
+ return 1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
$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');
|
||||
# Optionally, set a fixed expiry time:
|
||||
if ($config->{expires}) {
|
||||
$c->res->headers->expires(time() + $config->{expires});
|
@ -590,6 +590,7 @@ rec {
|
||||
url = mirror://cpan/authors/id/A/AB/ABRAXXA/Catalyst-Plugin-Static-Simple-0.30.tar.gz;
|
||||
sha256 = "18zar1n4imgnv7b4dr5sxyikry4668ngqgc6f0dr210bqafvwv7w";
|
||||
};
|
||||
patches = [ ../development/perl-modules/catalyst-plugin-static-simple-etag.patch ];
|
||||
propagatedBuildInputs = [ CatalystRuntime MIMETypes Moose MooseXTypes namespaceautoclean ];
|
||||
meta = {
|
||||
description = "Make serving static pages painless";
|
||||
|
Loading…
Reference in New Issue
Block a user