Запрет Heroku использовать предварительно скомпилированные ресурсы в режиме разработки - PullRequest
3 голосов
/ 21 января 2012

В настоящее время, похоже, Heroku полон решимости предварительно скомпилировать ресурсы, когда я отправляю свой код до своих экземпляров.

Это отлично подходит для производственных серверов, однако для моего сервера "RAILS_ENV = development" это вызывает проблемы, так как теперь я получаю страницы со всеми файлами JavaScript, которые обслуживаются индивидуально, из моего манифеста активов, а затем другой файл с тем же кодом все сгруппированы как предварительно скомпилированный актив.

Это приводит к сбою моих библиотек jquery datatables, которые выдают всплывающие ошибки, которых я не получаю в локальной среде (разработка или производство) или в производственном экземпляре Heroku.

Есть ли возможность отключить предварительную компиляцию ресурсов в Heroku для экземпляров режима разработки? Или есть какая-то причина, по которой они еще не отключены на серверах разработчиков Heroku?

Ответы [ 3 ]

2 голосов
/ 21 января 2012

Если Heroku обнаружит файл public / assets / manifest.yml, они не будут пытаться предварительно скомпилировать ваши ресурсы и предположить, что вы имеете дело с ними самостоятельно.Больше информации на http://devcenter.heroku.com/articles/rails31_heroku_cedar

0 голосов
/ 11 июня 2013

Я обошел эту проблему, добавив в мой Rakefile немного вуду, чтобы отключить задачу rake. Precompile.

сначала я добавляю компонент user-env-compile labs

heroku labs:enable user-env-compile

затем добавьте это в начало моего рейкфайла

# found from http://blog.jayfields.com/2008/02/rake-task-overwriting.html
# used by conditional heroku asset compile magick
class Rake::Task
  def overwrite(&block)
    @actions.clear
    enhance(&block)
  end
end

Затем я добавляю это грабельное задание в lib / tasks / disable_assets_on_heroku.rake

if ENV['RAILS_ENV'] == 'development'
  namespace :assets do
    task(:precompile).overwrite do
      puts "Asset precompile skipped in #{ENV['RAILS_ENV']}"
    end
  end
end
0 голосов
/ 21 января 2012

AFAIK, Heroku должен предварительно скомпилировать ресурсы, чтобы обойти их только для чтения FS и тот факт, что конвейер ресурсов Rails хочет записывать файлы в FS.Единственное, что я могу предложить, это выяснить, почему ваши ресурсы ломаются при компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...