Có ba vấn đề chính mà tôi đang gặp phải, tôi đánh giá cao bất kỳ trợ giúp nào cho bất kỳ ứng dụng nào.Định cấu hình ứng dụng Rails 4 để sản xuất trong thư mục con theo Apache
1) Làm cách nào để định cấu hình ứng dụng Rails có số myurl.com/myapp/
làm gốc?
tôi đã cố gắng trong routes.rb
:
scope '/myapp' || '/' do
# all resources and routes go here
root :to => "papers#index"
resources :papers
end
và trong environment.rb
, tôi bổ sung này lên đầu
ENV['RAILS_RELATIVE_URL_ROOT'] = "/myapp"
này gần công trình, trừ rake routes
mà không in bất kỳ tuyến đường cho "/ ", và GET myurl.com/myapp/
sản xuất ActionController::RoutingError (No route matches [GET] "/")
2) Những gì nó cần phải nói với apache?
Các nhà cung cấp máy chủ chia sẻ của tôi đề nghị đặt này để ~/html/.htaccess
RewriteEngine on
RewriteRule ^myapp/(.*)$ /fcgi-bin/rails4/$1 [QSA,L]
với /fcgi-bin/rails4
là
#!/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
Khi tôi nhấp vào bất kỳ liên kết trên trang web, url trình duyệt thay đổi ví dụ đến myurl.com/fcgi-bin/rails4/papers/1
, vị trí phải là myurl.com/myapp/papers/1
. Làm thế nào tôi có thể ngăn chặn điều đó?
3) Làm thế nào để có được những tài sản lưu động
tôi cảm thấy như thế này sẽ được giải quyết bằng cách nào đó cùng với 1) và 2). Tuy nhiên, ngay bây giờ, ứng dụng sẽ cố gắng thực hiện:
GET myurl.com/assets/application-5e86fb668d97d38d6994ac8e9c45d45e.css
có giá trị 404 Not Found
. Các tài sản nên được dưới subdirectoy quá, phải không? Làm thế nào để tôi nói cho ray để đặt/tìm thấy chúng ở đó?