在使用passenger和apache的子目录中托piperails3应用程序时,视图图层中的相对path不正确

我想要使​​用子目录在多个服务器上托pipe多个Rails应用程序。 并遇到一些相对path问题。

我已经做了一个符号链接到应用程序的公共目录,并将其放置在/ 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 /目录并且工作,但是,在显示视图中的公用目录中的图像时,相对path出错。

说我有

 /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中完成,如果可能的话,我宁愿将它包含在Apache的conf文件中,而不必更改代码。

你需要RackBaseURI而不是RailsBaseURI> = 3.0