Имеется несколько причин того, что может возникнуть желание компилировать ресурсы локально. Вот некоторые из них:
У вас нет права записи в файловую систему production.
Вы размещаетесь более чем на одном сервере и хотите избежать дублирования работы.
Вы часто производите деплои, не включающие изменения ресурсов.
Локальная компиляция позволяет зафиксировать скомпилированные файлы в управлении версиями и деплоить как обычно.
Однако есть три оговорки:
Вы не должны запускать задачу Capistrano, которая компилирует ресурсы.
Вы должны убедиться, что в вашей системе разработке присутствуют все необходимые компрессоры или минифайеры.
Вы должны изменить следующую конфигурационные настройку приложения:
В config/environments/development.rb поместите следующую строчку:
config.assets.prefix = "/dev-assets"
Изменение prefix позволяет Sprockets использовать другой URL для обслуживания ресурсов в режиме development и передавать все запросы в Sprockets. Префикс остался установленным /assets в режиме production. Без этого изменения приложение будет обслуживаться прекомпилированными ресурсами из /assets в development, и вы не увидите какие-либо локальные изменения, пока снова не скомпилируете ресурсы.
На практике это позволит прекомпилировать локально, держать эти файлы в рабочей ветке и при необходимости фиксировать в системе контроля версий. Режим development будет работать так, как от от него ожидается
Вы не должны запускать задачу Capistrano, которая компилирует ресурсы?