2011-12-10 28 views
14

我有一个设置,其中nginx服务于特定子文件夹内的轨道应用程序Prepend Path前缀到所有轨道路线

例如, http://myserver/railsapp/并且里面的所有内容都会代理到rails,如果第一个子文件夹不同,它会从另一个文件夹中为静态文件提供服务。

我一直无法找到如何以智能的方式在rails中指定此行为。我的意思是,我想要的是指定一个选项,如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