Rails 3.1 Развертывание в производственной среде (с Apache и Passenger) Проблемы с активами

Rails 3.1 изменил способ обработки конвейера ресурсов, и это вызывает проблемы при развертывании в производственной среде.

Я использую Apache и Passenger, которые, похоже, работают нормально.

Мое производство устроено так (пока).

# congif/environments/production.rb
config.cache_classes = false
config.consider_all_requests_local       = true
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache

Я запускаю rake assets: предварительно компилирую на Ubuntu и запускаю сервер. И ничего. Ни одно из моих изображений не загружается.

Легендарное поле «Я не могу найти изображение по этому URL-адресу».

Я запускаю rake assets: предварительно компилирую на CentOS и запускаю сервер. И ... ошибки разрешения.

*Error Compiling CSS Asset*
Errno::EACCESS: Permission Denied - [app path]/tmp/cache/assets/E95
[path to RVM Ruby]/fileutils.rb:243:in 'mkdir'

Я не могу сдвинуться с места. Любая помощь приветствуется. Спасибо!

ОБНОВЛЕНИЕ

Это решение каждый раз работало для меня:

Сначала очистите ваши активы

rm -rf public/assets

и

rake assets:clean RAILS_ENV=production

Во-вторых, в # production.rb измените

config.assets.compile = false

на

config.assets.compile = true

В-третьих, запустите предварительно скомпилируйте свои ресурсы

rake assets:precompile RAILS_ENV=production

В-четвертых, в # production.rb измените

config.assets.compile = true

обратно на

config.assets.compile = false

В-пятых, перезапустите сервер, выполнив:

touch tmp/restart.txt

В-шестых, снимите ограничения разрешений для ваших вновь созданных ресурсов, выполнив эту команду

chmod -R 777 public / assets

Седьмое, праздновать !!

10
задан mikeborgh 22 November 2011 в 18:21
поделиться