javascript
やstylesheet
の:cache => true
オプションは、複数のassetsファイルを
ひとつのファイルにまとめる事で、サーバへのリクエスト
数を減らすことができる機能です。
何度か実験してみたところ、生成されたキャッシュファイルを 削除して更新するためには、単純にファイルを削除するだけ ではだめで、APサーバのプロセスを再起動する必要があるようです。
このためには、./script/p
を使う必要があります。タイプするのが面倒なので、
Rakeタスクを作ってみました。
lib/tasks/
1 namespace :tmp do 2 namespace :cache do 3 desc 'Delete cached asset files' 4 task :update do 5 patterns = [ 6 'public/stylesheets/c ached_*.css', 7 'public/jav ascripts/c ached_*.js'] 8 Dir.glob(patterns).each do |path| 9 rm_rf path 10 puts "deleted: #{path}" 11 end 12 `./script/p rocess/rea per -a graceful 2>&1 > /dev/null` 13 puts "script/pro cess/reape r -a graceful" 14 end 15 end 16 end
生成されるキャッシュファイルの名前を
:cache => "cached_#{controller
と指定しているため、こんな感じになります。
デフォルトでは、all.css
やall.js
となりますので
適宜読みかえてください。
posted by
genki
on Sat 12 Jan 2008
at 23:17