JavaScript や CSS の query に自動で最終更新時間をつける Catalyst Plugin
川o・-・)<2nd life - JavaScript や CSS の query に自動で最終更新時間をつける Rails Plugin
インスパイア。
package Catalyst::Plugin::URI::MtimeQuery;
sub uri_for {
my $c = shift;
my $res = $c->NEXT::uri_for(@_);
if ( $res =~ /\.(css|js|swf)$/ ) {
my $base = $c->req->base;
my ($path) = $res =~ m!^$base/(.*)!;
my $file = $c->path_to( 'root', split '/', $path );
if ( $file->stat && -f _ && -r _ ) {
$res .= '?' . $file->stat->mtime;
}
}
$res;
}
1;
Catalyst では CSS や Javascript の読み込みは [% c.uri_for('/js/prototype.js') %]
などのように記述することが多いのですが、上記プラグインをロードしておくと、css|js|swf の場合は自動で更新時間が付くようになります。試してないけど。
上のは設定きめうちなんだけどその理由は config の設定キー名思いつかなかったからという。。
あと、swf は普通にクエリを渡して使うことが多いのでこのままだとあまり使えない。