2011-12-10 2 views
14

nginxが特定のサブフォルダ内でレールアプリケーションを提供するセットアップがあるすべてのレールルートの前にパスプレフィックスを付ける

たとえば、 http://myserver/railsapp/と内部のすべてがレールにプロキシされます。最初のサブフォルダが異なる場合は、別のフォルダから静的ファイルを処理します。

この動作をインテリジェントな方法で指定する方法を見つけることができませんでした。つまり、私が望むのは、到着したリクエストと生成されたリンクの両方にすべてのルートが自動的に付加されるように、Rails.server_prefix = /railsappのようなオプションを指定することです。

答えて

30

あなたはおそらくとルータのスコープのメソッドを使用します:path引数:

Rails.application.routes do 
    scope(:path => '/railsapp') do 
    # the rest of your routes go here 
    end 
end 

See the docs for more info.

+0

が、これは経路生成のために働くだろうが、レール3.1で、これは '認識しません/ railsapp/assets/pic.png' ... –

+8

さて、私は 'config.assets.prefix'の機能を理解しました...' config.assets.prefix = '/ railsapp/assets''と今はできます! –

+1

'scope path: '/ railsapp' do'でも、やや簡単な構文ができます。 このおかげで、助けてくれてありがとう! – stuyam

関連する問題