我正在尝试在 Bluehost 中部署我的 RoR 应用程序,但遇到了一些问题。我希望我的 Rails 应用程序可以从顶级域访问,也就是说,一旦有人访问我的网站 URL 就可以访问。我已经遵循了几个教程,并尝试了几种方法,但我仍然一无所获。当我访问我的 URL (http://hotelelcidacapulco.com/) 时,我收到以下消息:没有这样的文件或目录 - config.ru
我认为这一定是符号链接(symbolic link)的问题。我尝试过不同的符号链接(symbolic link),但我认为应该是:
ln -s ~/path/appName/public appname 像这样: ln -s ~/rails_apps/ElCid/public ElCid
但我再次收到错误消息:没有这样的文件或目录 - config.ru
再说一遍,我绝对不是专家,但我认为这与符号链接(symbolic link)有关。我一直在挣扎,非常感谢您的帮助,因为我需要让它尽快运行。
这是我的文件:
/home3/hotelelc/public_html/.htaccess 文件:
SetEnv GEM_HOME /home3/hotelelc/ruby/gems
<IfModule mod_passenger.c>
Options -MultiViews
PassengerResolveSymlinksInDocumentRoot on
RailsEnv production
RackBaseURI /
SetEnv GEM_HOME /home3/hotelelc/ruby/gems
</IfModule>
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)/!$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
ErrorDocument 500 "Application error Application failed to start properly"
/home3/hotelelc/.bashrc 文件:
export HPATH=/home3/hotelelc/
export GEM_HOME=$HPATH/ruby/gemsexport GEM_HOME=$HPATH/ruby/gems
export GEM_PATH=$GEM_HOME:/usr/lib64/ruby/gems/1.8
export GEM_CACHE=$GEM_HOME/cache
export PATH=$PATH:$HPATH/ruby/gems/bin
export PATH=$PATH:$HPATH/ruby/gems
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
最后,这是我的/config/environment.rb 文件:
require File.expand_path('../application', __FILE__)
ElCid::Application.initialize!
ENV['GEM_PATH'] = '/home3/hotelelc/ruby/gems:/usr/lib64/ruby/gems/1.8'
最佳答案
尝试将 .htaccess 文件移动到应用程序的公共(public)目录而不是 public_html。我相信这将是 app/public/.htaccess
。希望能帮助到你!
是的,我知道这是一个老问题,但对于 future 的读者来说。
关于ruby-on-rails - 在 Bluehost 上部署 Rails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590765/