У меня есть проект, в котором я обновляю приложение ruby-1.8.7-p72/rails 2.3.2/mongrel. Первый шаг, который я делаю, — это обновление до ruby-1.9.3-p484, rails 2.3.18 и unicorn.
Сейчас я нахожусь в том месте, где могу запустить приложение на сервере разработки через unicorn (развернуть через capistrano — rvm-capistrano и capistrano-unicorn). Однако он не может обслуживать какие-либо ресурсы (изображения, таблицы стилей и т. д.).
Я вижу ошибки в журнале единорога, например:
ActionController::RoutingError (No route matches "/images/pp.jpg" with {:method=>:get}):
<internal:prelude>:10:in `synchronize'
unicorn (4.8.2) lib/unicorn/http_server.rb:572:in `process_client'
unicorn (4.8.2) lib/unicorn/http_server.rb:666:in `worker_loop'
unicorn (4.8.2) lib/unicorn/http_server.rb:521:in `spawn_missing_workers'
unicorn (4.8.2) lib/unicorn/http_server.rb:140:in `start'
unicorn (4.8.2) bin/unicorn_rails:209:in `<top (required)>'
/Users/ruby/.rvm/gems/ruby-1.9.3-p484/bin/unicorn_rails:19:in `load'
/Users/ruby/.rvm/gems/ruby-1.9.3-p484/bin/unicorn_rails:19:in `<main>'
/Users/ruby/.rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `eval'
/Users/ruby/.rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `<main>'
Я вижу эту же ошибку независимо от того, обращаюсь ли я к порту единорога напрямую или через apache (mod_rewrite — разговариваю с портом единорога)
Нужно ли мне менять местонахождение моих активов? В настоящее время они находятся под /public. Здесь они отлично работают под ruby-1.8.7-p72/rails 2.3.2/mongrel, но не работают под ruby-1.9.3-p484/rails 2.3.18/unicorn. Или есть элемент конфигурации, который я могу поместить в свои файлы шапки, который устанавливает местоположение активов? Я ничего не нашел в документах единорога.
Кто-нибудь еще прошел через это и знает ответ? Я буду продолжать продираться через это, но любые подсказки будут оценены.