我想使用子目录在多台服务器上托管多个 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 中要做的事情,如果可能的话,我宁愿将其包含在 apache 的 conf 文件中,而不必更改代码。
答案1
你要机架基URI而不是 RailsBaseURI(>=3.0)