2011-12-10 12 views
14

nginx'in, örneğin, belirli bir alt klasördeTüm ray yollarına yol öneki ekle

içinde bir ray uygulamasına hizmet ettiği bir kurulum var. http://myserver/railsapp/ ve içerideki her şey raylara proksiye edilir, eğer ilk alt klasör farklıysa, başka bir klasörden statik dosyalar oluşturur.

Bu davranışı raylarda akıllı bir şekilde nasıl belirleyemedim. İstediğim şey, Rails.server_prefix = /railsapp gibi bir seçenek belirlemektir, böylece tüm yollar hem gelen isteklerde hem de oluşturulan bağlantılarda otomatik olarak hazırlanır. argüman yolu:

cevap

30

Muhtemelen ile yönlendiricinin kapsamı yöntemini kullanmak istiyorum `

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

See the docs for more info.

+0

bu rota nesil için çalışacak, ama raylar 3.1, bu tanımayacaktır/railsapp/assets/pic.png' ... –

+8

iyi, şimdi 'config.assets.prefix' işlevini anladım…' config.assets.prefix = '/ railsapp/assets'' koymak zorundaydım ve şimdi işe yarıyor! –

+1

Ayrıca 'kapsam yolunu da yapabilirsiniz: '/ railsapp' do' bence biraz daha basit bir sözdizimi için. Bunun için teşekkürler, bana yardımcı oldu! – stuyam