Você deseja RackBaseURI em vez de RailsBaseURI para > = 3.0
Eu quero hospedar vários aplicativos Rails em um servidor múltiplo usando subdiretórios. E encontrei alguns problemas de caminho relativos.
Eu fiz um link simbólico para o diretório público do aplicativo e o coloquei no diretório / var / www / html,
var/www/html/
/test_app (symbolic link to the public folder of test_app)
e defina o apache como tal
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>
Os links no próprio aplicativo funcionam bem, todos os links reconhecem o diretório test_app / e funcionam, no entanto, quando se trata de mostrar imagens no diretório público na exibição, o caminho relativo está errado.
Digamos que eu tenha
/system/files/1/aaa.png
vai procurar em
/var/www/html/system/files/1/aaa.png
em vez de
/var/www/html/test_app/system/files/1/aaa.png
Até onde eu sei, isso é um problema de configuração do Apache do que algo a ser feito no Rails, Se for possível, eu preferiria tê-lo contido no arquivo conf do apache, em vez de ter que alterar o código.