2013-08-12 8 views
7

Есть ли способ кэшировать предварительно скомпилированные активы для приложения Rails 4 на Heroku?Ускорить развертывание Heroku для Rails 4 app

Я следил за инструкциями от this blog post и некоторыми документами heroku, которые ускоряли работу, но все равно продолжали так много времени, чтобы прекомпилировать активы.

Вот соответствующий раздел из моей Gemfile (также счел необходимым enable the 'user-env-compile' lab):

group :production, :staging do 
    # for heroku, see https://devcenter.heroku.com/articles/rails-integration-gems 
    gem 'rails_12factor' 

    # https://devcenter.heroku.com/articles/rack-cache-memcached-rails31 
    gem 'rack-cache' 
    gem 'kgio' 

    # faster heroku deploys (http://blog.alexmaccaw.com/faster-deploys) 
    gem 'memcachier' 
    gem 'dalli' 
end 

И от моей конфигурации/production.rb и конфигурации/staging.rb:

# Neither of the below worked (tried separately) 
    # config.assets.cache_store = :dalli_store 
    config.assets.configure {|env| env.cache = ActiveSupport::Cache.lookup_store(:dalli_store) } 

Спасибо !

+0

Вы пытаетесь сделать компиляцию активов меньше времени или пытаетесь скомпилировать активы в другом месте, поэтому их не нужно компилировать в приложении? «Ускорение событий значительно» и «способ кэширования предварительно скомпилированных активов» звучат как разные задачи для меня. – culix

+0

[Эта статья в Dev Center] (https://devcenter.heroku.com/articles/rails-asset-pipeline) содержит информацию о кешировании статических активов и расширена в [этом сообщении в блоге] (http: // www. neilmiddleton.com/heroku-asset-pipeline-faq/) – culix

+1

Попытка избежать повторной компиляции активов, которые не изменились, поскольку это то, что, по-видимому, делает развертывание так долго. Является ли прекомпиляция локально единственным способом? – Jay

ответ

1

Посмотрите на драгоценный камень assets_sync.

+0

Интересно, я сделаю это. Не вижу никакого конкретного упоминания о Rails 4, надеюсь, никаких изменений – Jay