Ресурс Rails: прекомпиляция на машине разработчика: Как работать с группой активов?
Поскольку моя производственная машина несколько ограничена (Raspberry Pi), я хочу установить как можно меньше драгоценных камней на свою производственную машину. Чтобы уменьшить зависимости, я хочу выполнить предварительную компиляцию моих ресурсов на моем компьютере разработчика и развернуть их в рабочей среде. Поэтому мне не нужно выполнять предварительную компиляцию на моей производственной машине, и мне не нужны все драгоценные камни, которые требуются для конвейера активов.
Поэтому я переместил все гемы в Gemfile в группу ресурсов и изменил мой config/application.rb:
Bundler.require *Rails.groups(:assets => %w(development test))
В среде разработки и тестирования все работает отлично.
Но если я хочу сделать прекомпиляцию на моей машине через...
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-компиляторов