rails assets: прекомпилировать во время slug для ошибки s3: поставщик Fog и каталог не могут быть пустыми, когда заданы env
Я решил обслуживать рельсы через S3; У heroku есть отличные уроки о том, как это сделать. Сайт теперь обслуживает ресурсы из моего хранилища Amazon, но я не уверен, почему мне пришлось запускать вручнуюheroku run rake assets:precompile
послеgit push heroku master
который управляетrake assets:precompile
.
После запускаgit push heroku master
активы, которых не было в моем ведре, и выходные данные для прекомпиляции были:
AssetSync: using default configuration from built-in initializer
AssetSync: using default configuration from built-in initializer
rake aborted!
Fog provider can't be blank, Fog directory can't be blank
/tmp/build_3vtwfg15g8ajx/vendor/bundle/ruby/1.9.1/gems/asset_sync-0.5.0/lib/asset_sync/asset_sync.rb:29:in `sync'
/tmp/build_3vtwfg15g8ajx/vendor/bundle/ruby/1.9.1/gems/asset_sync-0.5.0/lib/tasks/asset_sync.rake:3:in `block in <top (required)>'
Tasks: TOP => assets:precompile:nondigest
(See full trace by running task with --trace)
Precompiling assets failed, enabling runtime asset compilation
Injecting rails31_enable_runtime_asset_compilation
Я установил провайдера тумана и каталог с:heroku config:add FOG_DIRECTORY=XXX FOD_PROVIDER=AWS
и вызывая конфиг heroku --app подтверждает это ... так что я не получаю этих ошибок.
Активы не показывались в моем ведре, поэтому я побежал:heroku run rake assets:precompile
и все заработало с предупреждением:
AssetSync: using default configuration from built-in initializer
AssetSync: Syncing.
[WARNING] fog: the specified s3 bucket name(ss_assets) is not a valid dns name, which will negatively impact performance. For details see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Bucket
Restrictions.html
Должен ли я всегда запускать задачу прекомпиляции после и просто быть в порядке с ошибкой push? Я проверю, не вызывает ли предупреждение об имени каталога пустые ошибки FOG при нажатии
РЕДАКТИРОВАТЬ Опять же, у asset_sync, по-видимому, нет переменных ENV при вызове в активах: задача прекомпиляции нажатия heroku. Выполнение этой задачи после принудительной работы, но это «раздражает».
Все еще не работает для меня, последняя попытка была (заgitub проект asset_sync):
Библиотека / Задачи / asset_sync.rake.
Rake::Task['assets:precompile'].enhance do
AssetSync.sync
end
Rake::Task["assets:precompile:nondigest"].enhance do
AssetSync.sync
end
Я также попытался добавить строки в мой файл production.rb, например:
config.asset_sync.aws_bucket = ENV['FOG_DIRECTORY']
config.asset_sync.fog_provider = ENV['FOG_PROVIDER']
У меня тоже не сработало.