Посредник показывает отпечатки пальцев

Я использую посредника со звездочками для упаковки моих файлов js и css в один файл. Это прекрасно работает. Но мне было интересно, можно ли включить функцию отпечатков пальцев от звездочек в посреднике.

например мой файл all.js, в котором все компилируется, переименовывается в all-4e17d33ff76d744900c2691a71ed83e4.js.

Также было бы здорово, если бы это было возможно с изображениями.


person 23tux    schedule 30.09.2012    source источник


Ответы (2)


Использовать

activate :asset_hash

в конфигурации посредника (Улучшение кэшируемости).

(Вы можете использовать либо :asset_hash, либо :cache_buster, но не оба одновременно.)

person sam    schedule 10.12.2012

Я не нашел готового решения для этого, но я сделал свое собственное решение. В config.rb я запускаю крючок after_build. Не лучший способ, но работает:

after_build do
  require 'fileutils'
  delete_except "build/javascripts/", "all.js"
  delete_except "build/stylesheets/", "all.css"

  require 'digest/sha1'
  sha1 = Digest::SHA1.hexdigest Time.now.getutc.to_i.to_s
  allJS = "all-" + sha1 + ".js"
  allCSS = "all-" + sha1 + ".css"
  File.rename("build/javascripts/all.js", "build/javascripts/" + allJS)
  File.rename("build/stylesheets/all.css", "build/stylesheets/" + allCSS)

  index_file = "build/index.html"
  html = File.read(index_file)
  html = html.gsub(/all\.js/, allJS)
  html = html.gsub(/all\.css/, allCSS)

  File.open(index_file, "w") { |file| file.puts html }
end

Я делаю следующее:

  • удалить ненужные сгенерированные файлы .js и .css
  • генерация хэша sha1 на основе времени (мне этого достаточно)
  • добавление хэша к файлам
  • обновление index.html новыми именами файлов
person 23tux    schedule 21.11.2012