Есть три основных вопроса, с которыми я борюсь, я ценю любую помощь для любого из них.Настройка приложения Rails 4 для производства в подкаталоге под Apache
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 (No route matches [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
который procudes 404 Not Found
. Активы также должны находиться под поддиалогом, верно? Как я могу указать рельсы, чтобы их найти или найти?