Назад | Перейти на главную страницу

Относительный путь неверен на уровне представления при размещении приложения rails в подкаталоге с использованием пассажира и apache

Я хочу разместить несколько приложений Rails на нескольких серверах, используя подкаталоги. И столкнулись с некоторыми проблемами относительного пути.

Я сделал символическую ссылку на общедоступный каталог приложения и поместил его в каталог / var / www / html,

var/www/html/
            /test_app (symbolic link to the public folder of test_app) 

и установите apache так

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.12/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.12
   PassengerRuby /usr/local/bin/ruby

   <VirtualHost *:80>
      ServerName  test.com
      DocumentRoot /var/www/html

      Options Indexes FollowSymLinks -MultiViews

      RailsBaseURI /test_app

      </Location>
   </VirtualHost>

Ссылки в самом приложении работают нормально, все ссылки подтверждают каталог test_app / и работают, однако, когда дело доходит до отображения изображений в общедоступном каталоге в представлении, относительный путь идет не так.

Скажи, что у меня есть

/system/files/1/aaa.png

он ищет это в

/var/www/html/system/files/1/aaa.png

скорее, чем

/var/www/html/test_app/system/files/1/aaa.png

Насколько я понимаю, это проблема настройки Apache, чем что-то, что нужно сделать в Rails, если это возможно, я бы предпочел, чтобы она содержалась в файле conf apache, а не изменяла код.

Вы хотите RackBaseURI вместо RailsBaseURI для> = 3.0