5

私が苦労している3つの大きな問題があります。Apacheの下のサブディレクトリにRails 4アプリを設定する

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で、私はそのrake routesを除き、トップ

ENV['RAILS_RELATIVE_URL_ROOT'] = "/myapp" 

これは、ほぼ作品にこれを追加するための任意の経路を印刷しません「/ 」、GET myurl.com/myapp/は、ActionController::RoutingError (No route matches [GET] "/")

2)Apacheに何を伝える必要がありますか?

私の共有サーバーのプロバイダは/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は、例えば変更されて~/html/.htaccess

RewriteEngine on 
RewriteRule ^myapp/(.*)$ /fcgi-bin/rails4/$1 [QSA,L] 

にこれを置くことを提案しますmyurl.com/fcgi-bin/rails4/papers/1になります。ここでは、myurl.com/myapp/papers/1になります。どうすればそれを防ぐことができますか?これは1と一緒に何とか解決されるように私は感じ

作業資産を取得する方法

3))及び2)。しかし、今、アプリは何しようとします:404 Not Foundをprocudes

GET myurl.com/assets/application-5e86fb668d97d38d6994ac8e9c45d45e.css 

。資産はサブディレクターの下になければなりません、そうですか?レールを置いてそこに置くようにレールにどのように指示しますか?

答えて

3

あなたの質問にお答えするために、いくつかの前提があります。

  1. 私は静的なサイトはmyurl.comで提供して、あなただけのRailsアプリはmyurl.com/myapp

  2. に提供したいことを、私はあなたの共有ホスティングプロバイダが道としてのFastCGIを好むと仮定しているがあると仮定しています

      :これらの仮定に基づいて、ラックのアプリ(レール)

    を提供するために、私は、もしあなたのことを信じています

 

    ENV['RAILS_ENV'] ||= 'production' 
    ENV['GEM_HOME'] = File.expand_path('your_gem_home') 

    require 'fcgi' 
    require File.join(File.dirname(__FILE__), '../config/environment.rb') 

:内容と ~/html/myapp/publicdispatch.fcgiファイルを追加します
 

    AddHandler fastcgi-script .fcgi 

    Options +FollowSymLinks +ExecCGI 

    RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L] 

    ErrorDocument 500 "Rails application failed to start properly" 

  1. :あなたのRailsアプリは内容で~/html/myapp/public.htaccessファイルを追加し~/html/myappフォルダ
  2. 下に移動
    1. アプリだけで罰金とうまくルート開始する必要があります
    2. chmod +x ~/html/myapp/public/dispatch.fcgi

    ...

    私はあなたがconfig.action_controller.relative_url_rootの設定について心配する必要はないと思います。

    また、アプリケーションをデプロイする前にbundle install --deploymentを使用して宝石をインストールします。

    何がありますので最後に、あなたがルートルートを取得していない理由はありません:あなたのconfig/routes.rb

    ホープの root :to => 'controller#action'このことができますし、いない場合は、チェックアウト:

    Dreamhost - Rails 3 and FastCGIFastCGI setupを含みます使用についてのヒントENV['RAILS_RELATIVE_URL_ROOT']

関連する問題