2013-12-05 3 views
2

Я использую Capistrano для развертывания моего приложения Rails 4. Предварительная компиляция ресурсов на сервере очень медленная, поэтому я вручную предварительно скомпоную ее в разработке с помощью RAILS_ENV=production bundle exec rake assets:precompile и добавлю ее в мой git-репо.Как можно очистить старые ресурсы Rails, когда они предварительно скомпилированы локально и добавлены в репозиторий?

Проблема, с которой я столкнулся, заключается в том, что задача assets:precompile не удаляет старые активы. Итак, у меня есть несколько копий application-<manifest code>.css и application-<manifest-code>.js в моих публичных активах.

Capistrano имеет deploy:assets:clean_expired Задача для этого, хотя я не уверен, как я могу воспроизвести его в моем случае. Я видел другие подходы, которые используют задачу capistrano для прекомпиляции активов и rsync их. Эта ссылка - http://keighl.com/post/fast-rails-assets-precompile-capistrano/ - имеет подход для Rails 3 с использованием жемчуга turbo-sprockets-rails3.

Есть подобные вопросы здесь - Do I have to run rake assets:clean before rake assets:precompile? и Confusion about rake assets:clean/cleanup on the asset pipeline in rails

Как я могу адаптировать его для Rails 4?

ответ

1

Это хорошо работает для меня сейчас - https://gist.github.com/mishrarohit/7802260 Он использует историю изменений git, чтобы проверить, были ли внесены какие-либо изменения в активы. Будет лучше, если мы сможем использовать манифест для этого.

+0

gist link is dead –

+1

Исправлена ​​ссылка. – rohitmishra

Смежные вопросы