可以更改RAILS_ROOT吗?

时间:2009-08-10 19:44:00

标签: ruby-on-rails ruby

在呻吟和呻吟之前,我的客户正在使用Godaddy来托管他的应用程序。我设法让应用程序为他工作,但Godaddy使用sym链接指向附加网站根目录的应用程序。

www.yoursite.com/myrailsapp

我试过把它放在environment.rb

基本上所有的链接都应该像这样工作:

www.yoursite.com/link1

但它变成了:

www.yoursite.com/myrailsapp/link1

有没有办法让RAILS_ROOT指向实际的rails根应用程序目录?

4 个答案:

答案 0 :(得分:3)

我不认为这是RAILS_ROOT问题,而是更多VirtualHost问题。域未将DocumentRoot设置为您的Rails公共目录。

答案 1 :(得分:2)

RAILS_ROOT只是在boot.rb中定义。虽然没有预料到你应该改变它,但没有什么能阻止你。它通常接近文件的开头,就在“不要改变这个”请求之后,看起来像是:

RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)

答案 2 :(得分:1)

正如加勒特所说,这绝对是一个VirtualHost问题。 RAILS_ROOT是指向服务器上文件系统中应用程序位置的目录指针,而不是URL中的位置。

根据应用程序的部署(Passenger,FastCGI,mongrel等),有几种方法可以解决这个问题。您想要查找的是如何设置您的应用程序以在您的域的子目录中运行。

答案 3 :(得分:0)

这会有效吗?

RAILS_ROOT =“/ home /#{File.dirname(FILE)} / ..”除非定义了?(RAILS_ROOT)