Es gibt drei wichtige Probleme, mit denen ich Probleme habe, ich schätze jede Hilfe für sie.Konfigurieren einer Rails 4-App für die Produktion in einem Unterverzeichnis unter Apache
1) Wie konfiguriere ich die Rails App, um myurl.com/myapp/
als root zu haben?
Ich habe versucht, in routes.rb
:
scope '/myapp' || '/' do
# all resources and routes go here
root :to => "papers#index"
resources :papers
end
und in environment.rb
, fügte ich diese nach oben
ENV['RAILS_RELATIVE_URL_ROOT'] = "/myapp"
Dies funktioniert fast, außer dass rake routes
jede Route nicht für nicht gedruckt „/ und GET myurl.com/myapp/
produziert ActionController::RoutingError (No route matches [GET] "/")
2) Was braucht es um Apache zu erzählen?
Der Anbieter meines gemeinsamen Server vorschlagen diese
RewriteEngine on
RewriteRule ^myapp/(.*)$ /fcgi-bin/rails4/$1 [QSA,L]
mit /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
zu ~/html/.htaccess
setzen, wenn ich auf der Seite einen Link klicken, wird der URL-Browser ändert sich zum Beispiel zu myurl.com/fcgi-bin/rails4/papers/1
, wo es myurl.com/myapp/papers/1
sein sollte. Wie kann ich das verhindern?
3) Wie das Vermögen zum Laufen bringen
Ich fühle mich wie das mit 1 irgendwie zusammen gelöst werden) und 2). Doch jetzt versucht die App zu tun:
GET myurl.com/assets/application-5e86fb668d97d38d6994ac8e9c45d45e.css
die procudes ein 404 Not Found
. Die Vermögenswerte sollten auch unter dem Unterverzeichnis stehen, oder? Wie sage ich Schienen, um sie dort zu finden?