Caminho relativo incorreto na camada de visualização ao hospedar um aplicativo rails3 em um subdiretório usando passageiro e apache

1

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.

    
por Saifis 29.04.2012 / 06:21

1 resposta

2

Você deseja RackBaseURI em vez de RailsBaseURI para > = 3.0

    
por 27.09.2012 / 17:03