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'
Я не могу сдвинуться с места. Любая помощь очень ценится. Спасибо!
UPDATE
Это решение каждый раз срабатывало для меня:
Сначала очистите ваши активы
rm -rf public/assets
и
rake assets:clean RAILS_ENV=production
Во-вторых, в # production.rb change
config.assets.compile = false
до
config.assets.compile = true
В-третьих, выполните прекомпиляцию ваших ресурсов
rake assets:precompile RAILS_ENV=production
В-четвертых, в # production.rb change
config.assets.compile = true
назад к
config.assets.compile = false
В-пятых, перезагрузите сервер, выполнив:
touch tmp/restart.txt
В-шестых, не ограничивайте разрешения для вновь созданных ресурсов, выполнив эту команду
chmod -R 777 public / assets
Седьмое, праздновать !!