2015/02/20

[compasscss] cssスプライトのファイル名をシンプルにした場合のキャッシュ対策

compassのcssスプライト作成時にファイル名につく乱数を削除して、シンプルな名前にすることができる。
参考:[compass] cssスプライト画像のファイル名をシンプルにする

これだとファイルがキャッシュされて、ファイルを変更しても古い画像が表示されてしまう可能性がある。
その場合は下記のコードをconfig.rbに追加。
「**.css?Owoiu93k2djhr」という風にファイル名の後ろに乱数をつけてキャッシュを読み込まないように対策できる。

on_stylesheet_saved do |filename|
  if File.exists?(filename)
    css = File.read filename
    File.open(filename, 'w+') do |f|
     rand = rand(100000000)
     str = '.png?' + rand.to_s
      f << css.gsub(%r{-s[a-z0-9]{10}\.png}, str)
    end
  end
end
# ----------------------------------------

1 件のコメント: