Rails 3.1 Развертывание в рабочей среде (с Apache & Passenger) Проблемы с активами - PullRequest
10 голосов
/ 27 октября 2011

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

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

Ответы [ 4 ]

8 голосов
/ 27 октября 2011

Это простая проблема с разрешениями.Дайте серверу / демону право создавать файлы в [app_path] / tmp рекурсивно.

Предполагая, что ваш серверный процесс выполняется с пользователем www-data, вы делаете это:если каталог не принадлежит пользователю, вы должны изменить владельца:

chown -R www-data tmp
4 голосов
/ 27 октября 2011

Попробуйте создать public/assets с помощью sudo или попробуйте выполнить rvmsudo rake assets:precompile - по сути, он не может создать каталог на вашем сервере - отсюда ошибка.

0 голосов
/ 02 июня 2016

Ваше обновленное решение не работает для меня. Я на рельсах 4.2 и css и js работает только когда я установил config.serve_static_files = true (что не рекомендуется, но это единственный способ заставить все работать здесь).

0 голосов
/ 11 ноября 2013

В Windows 8:

  1. Удалить ссылки на таблицы стилей
  2. Перезапустить производство
  3. Перейти на уязвимую страницу с помощью браузера
  4. Добавить ссылки на таблицы стилейназад
  5. Перезапустить производство
  6. Работай на меня!
...