Są trzy główne problemy, z którymi walczę, doceniam każdą pomoc dla każdego z nich.Konfigurowanie aplikacji Rails 4 do produkcji w podkatalogu pod Apache
1) Jak skonfigurować aplikację Rails tak, aby jako root była myurl.com/myapp/
?
Próbowałem w routes.rb
:
scope '/myapp' || '/' do
# all resources and routes go here
root :to => "papers#index"
resources :papers
end
oraz w environment.rb
dodałem to do górnej
ENV['RAILS_RELATIVE_URL_ROOT'] = "/myapp"
To prawie działa, z wyjątkiem tego rake routes
nie drukuje każdą trasę na „/ "i GET myurl.com/myapp/
produkuje ActionController::RoutingError (No route matches [GET] "/")
2) Co trzeba powiedzieć Apache?
Udzielający moim serwerze udostępnionym sugerują, aby umieścić to ~/html/.htaccess
RewriteEngine on
RewriteRule ^myapp/(.*)$ /fcgi-bin/rails4/$1 [QSA,L]
z /fcgi-bin/rails4
będąc
#!/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
Kiedy klikam dowolny link na stronie, URL zmienia się na przykład przeglądarka do myurl.com/fcgi-bin/rails4/papers/1
, gdzie powinno być myurl.com/myapp/papers/1
. Jak mogę temu zapobiec?
3) Jak zdobyć majątek pracuje
czuję się jak zostanie to rozwiązane jakoś razem z 1) i 2). Jednak teraz, aplikacja próbuje zrobić:
GET myurl.com/assets/application-5e86fb668d97d38d6994ac8e9c45d45e.css
który procudes 404 Not Found
. Aktywa też powinny znajdować się w podkatalogu, prawda? Jak mam powiedzieć szynom, aby je tam umieścić?