Plack::Middleware::NeverExpire - set expiration headers far in the future
# in app.psgi
use Plack::Builder;
builder {
enable_if { $_[0]{'PATH_INFO'} =~ m!^/static/! } 'NeverExpire';
$app;
};
This middleware adds headers to a response that allow proxies and browsers to cache them for an effectively unlimited time. It is meant to be used in conjunction with the Conditional middleware.
This middleware provides some functions for general use. They are not exported.
This takes an epoch time and returns it as a timestamp formatted according to RFC 9110 section 5.6.7.
This takes a PSGI response array and adds the caching headers to it if the status is 200. It returns nothing.
-
For most requests you want either immediate expiry with conditional
GET
, or indefinite caching, or on high-load websites maybe a very short expiry duration for certain URIs (on the order of minutes or seconds, just to keep them from getting hammered): fine-grained control is rarely needed. I wanted a really trivial middleware for when it's not, so I wrote NeverExpire.But when you need it, Expires will give you the precise control over expiry durations that NeverExpire doesn't.