我遇到了三个主要问题,非常感谢任何一个能提供帮助的人。
1)如何配置Rails应用程序以将myurl.com/myapp/
作为根目录?
我在routes.rb
中尝试过:
scope '/myapp' || '/' do
# all resources and routes go here
root :to => "papers#index"
resources :papers
end
在
environment.rb
中,我在顶部添加了以下内容。ENV['RAILS_RELATIVE_URL_ROOT'] = "/myapp"
这几乎可以工作,但是rake routes
不会打印任何关于“/”的路由信息,而GET myurl.com/myapp/
会产生ActionController :: RoutingError(没有匹配[GET]“ /”)
2)我需要告诉Apache什么?
我的共享服务器提供商建议将此放置在〜/html/.htaccess
中
RewriteEngine on
RewriteRule ^myapp/(.*)$ /fcgi-bin/rails4/$1 [QSA,L]
使用/fcgi-bin/rails4
时
#!/bin/sh
# This is needed to find gems installed with --user-install
export HOME=/home/kadrian
# Include our profile to include the right RUBY
. $HOME/.bash_profile
# This makes Rails/Rack think we're running under FastCGI. WTF?!
# See ~/.gem/ruby/1.9.1/gems/rack-1.2.1/lib/rack/handler.rb
export PHP_FCGI_CHILDREN=1
# Get into the project directory and start the Rails server
cd $HOME/rails4
exec bundle exec rails server -e production
当我在网站上点击任何链接时,浏览器的URL会改变,例如变成
myurl.com/fcgi-bin/rails4/papers/1
,而应该是myurl.com/myapp/papers/1
。我该如何防止这种情况发生?3)如何让资源正常工作
我感觉这个问题可能与1)和2)一起解决。然而,现在应用程序尝试执行以下操作:
GET myurl.com/assets/application-5e86fb668d97d38d6994ac8e9c45d45e.css
产生了一个404未找到
的错误。这些资源也应该在子目录下,对吧?我该如何告诉Rails将它们放置/查找到那里?