Как я могу получить метку времени разгона кэша Rails? - PullRequest
2 голосов
/ 16 декабря 2010

Я довольно новичок в Rails, поэтому, пожалуйста .. будьте нежны. :)

По-видимому, существует временная метка очистки кэша, которая добавляется в качестве строки запроса к JavaScript и CSS, включенным в Rails. Как я могу получить это значение программно? (Я бы хотел использовать его для других целей.)

Ответы [ 3 ]

2 голосов
/ 16 декабря 2010

Это последняя измененная временная метка рассматриваемого файла.Rails вычисляет его в ActionView asset_tag_helper.rb следующим образом, но важная часть - File.mtime(path).to_i

    # Use the RAILS_ASSET_ID environment variable or the source's
    # modification time as its cache-busting asset id.
    def rails_asset_id(source)
      if asset_id = ENV["RAILS_ASSET_ID"]
        asset_id
      else
        if @@cache_asset_timestamps && (asset_id = @@asset_timestamps_cache[source])
          asset_id
        else
          path = File.join(ASSETS_DIR, source)
          asset_id = File.exist?(path) ? File.mtime(path).to_i.to_s : ''

          if @@cache_asset_timestamps
            @@asset_timestamps_cache_guard.synchronize do
              @@asset_timestamps_cache[source] = asset_id
            end
          end

          asset_id
        end
      end
    end
1 голос
/ 07 декабря 2011

Есть несколько способов сделать это. Если вы развертываете с Capistrano, вы можете установить ENV['RAILS_ASSET_ID'] номера версии, содержащейся в REVISION.

0 голосов
/ 13 марта 2012

Как я уже писал, вы легко можете развернуть Capistrano, поскольку файл REVISION содержит уникальный хэш-идентификатор, но вы также можете создать свой собственный идентификатор версии и присвоить его RAILS_ASSET_ID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...