Я хочу разместить несколько приложений 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