NAME
Catalyst::Plugin::VersionedURI - add version component to uris
VERSION
version 0.1.0
SYNOPSIS
In your config file:
uri static/
In "MyApp.pm":
package MyApp;
use Catalyst qw/ VersionedURI /;
DESCRIPTION
"Catalyst::Plugin::VersionedURI" adds a versioned component to uris
matching a given set of regular expressions provided in the
configuration file. In other word, it'll -- for example -- convert
/static/images/foo.png
into
/static/v1.2.3/images/foo.png
This can be useful, mainly, to have the static files of a site magically
point to a new location upon new releases of the application, and thus
bypass previously set expiration times.
The versioned component of the uri resolves to "v"*$MyApp::VERSION*.
CONFIGURATION
uri
The plugin's accepts any number of "uri" configuration elements, which
are taken as regular expressions to be matched against the uris. The
regular expressions are implicitly anchored at the beginning of the uri,
and at the end by a '/'.
WEB SERVER-SIDE CONFIGURATION
Of course, the redirection to a versioned uri is a sham to fool the
browsers into refreshing their cache. Usually we configure the
front-facing web server to point back to the same directory.
Apache
Typically, the configuration on the Apache side used in conjecture with
this plugin will look like:
RewriteEngine on
RewriteRule ^v[0123456789._]+/(.*)$ /myapp/static/$1 [PT]
ExpiresActive on
ExpiresDefault "access plus 1 year"
YOU BROKE MY DEVELOPMENT SERVER, YOU INSENSITIVE CLOD!
While the plugin is working fine with a web-server front-end, it's going
to seriously cramp your style if you use, for example, the application's
standalone server, as now all the newly-versioned uris are not going to
resolve to anything. The obvious solution is, well, fairly obvious:
remove the VersionedURI configuration stanza from your development
configuration file.
If, for whatever reason, you absolutly want your application to deal
with the versioned paths with or without the web server front-end, you
can use Catalyst::Controller::VersionedURI, which will undo what
"Catalyst::Plugin::VersionedURI" toiled to shoe-horn in.
SEE ALSO
Blog entry introducing the module:
.
Catalyst::Controller::VersionedURI
AUTHOR
Yanick Champoux
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Yanick Champoux.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.