2014-01-20 3 views
1

Поскольку моя производственная машина несколько ограничена (малина pi), я хочу установить как можно больше драгоценных камней на моей производственной машине. Чтобы уменьшить зависимости, я хочу сделать предварительную компиляцию моих активов на своей dev-машине и развернуть их на производство. Поэтому мне не нужно делать предварительную компиляцию на моей производственной машине и не нужны все драгоценные камни, которые требуются для конвейера активов.Ресурс Rails: прекомпиляция на dev-машине: как обрабатывать группу активов?

Так я переместил все драгоценные камни в Gemfile к группе активов и изменил мой конфиг/application.rb:

Bundler.require *Rails.groups(:assets => %w(development test)) 

В развитии и тестовой среде все работает отлично.

Но если я хочу сделать прекомпиляцию на моем Dev машинах через ...

RAILS_ENV='production' bundle exec rake assets:precompile 

... он ломает из-за драгоценные камни из группы активов отсутствуют.

Но я не могу просто добавить группу активов в производственную среду, поскольку для этого потребуется установить все драгоценные камни в моей производственной среде (чего я не хочу делать).

Есть ли у кого-нибудь идеи, как это решить?

ответ

1

Вы можете скомпилировать его rake assets:precompile в dev m/c, а затем зафиксировать папку public/assets для удаленного репо. Поэтому, когда рабочий сервер запущен, он будет принимать уже предварительно скомпилированные активы из папки активов. Убедитесь, что вы изменили js/css/image, соответственно обновите файл с ресурсами.

Должен быть установлен любой драгоценный камень, упомянутый в Gemfile. Если вы не чувствуете необходимости использовать конкретные драгоценные камни, удалите его из Gemfile. ех. rubyracer gem присутствует в Gemfile, который используется для компиляции js. Чтобы избежать каких-либо проблем, резервное копирование в случае, если скомпилированный актив отсутствует, должен быть ложным, поскольку компиляция во время выполнения будет невозможна из-за отсутствия компиляторов js.

+0

Так что нет никакой разницы между прекомпиляцией в разработке env и production env? – phortx

+1

Если вы не указали какие-либо конкретные изображения/js самостоятельно для производства. Тогда это одно и то же. Он автоматически компилируется в режиме производства /home/user/.rvm/rubies/ruby-1.9.3-p286/bin/ruby/home/user/.rvm/gems/ruby-1.9.3-p286/bin/rake assets: precompile: все RAILS_ENV = production RAILS_GROUPS = assets – Bijendra

+0

Хорошо, это отвечает на мой вопрос. Спасибо :) – phortx

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