Template::Toolkitでファイルのタイムスタンプを付加

Railsだとimage_tagを使えば画像ファイルの更新日時をくっつけて

<img src="foo.jpg?1234567890" />

みたいにしてくれて、画像が更新されればブラウザは画像をキャッシュしていても新しくリクエストしてくれたりする。で、Catalyst/Template::Toolkitだとどうやるんだろう?ってことで書いてみた。

これをlib/MyApp/Views/Pluginに置いて、MyApp::View::TTとかに書かれている__PACKAGE__->configに

PLUGIN_BASE => 'TclandSp::View::Plugin',

を追加して各テンプレートで

[% USE Ts %]

すれば、例えば

[% Ts.ts('/static/images/logo.jpg') %]

/static/images/logo.jpg?1234567890

になる。これをimgタグと組み合わせて

<img src="[% Ts.ts('/static/images/logo.jpg') %]" />

とかするといい。

以下メモ:

やっぱりフルスタックのRailsはデカいけど便利だ。