如何在子目录中部署Rails 3.1 app

Ped*_*der 9 ruby-on-rails ruby-on-rails-3

如何配置Rails 3.1应用程序在特定目录(如"/ r")下运行?

我试过在config.ru:

map '/r' do
    run Debtor::Application
end
Run Code Online (Sandbox Code Playgroud)

但刚刚返回"未找到:/ r"

为了使它工作,我不得不将所有路由括在一个范围内:

scope '/r' do 
    #routes
end
Run Code Online (Sandbox Code Playgroud)

并将以下行添加到config/applcation.rb

config.assets.prefix = "/r/assets"
Run Code Online (Sandbox Code Playgroud)

并将我的jquery ui css文件从/ stylesheets移动到/ r/stylesheets.

这似乎太复杂了.是不是有一个更简单的方法?为什么我的config.ru设置不起作用?

我的用例是为wordpress服务器安装一个有轨的电源ajax后端.

Doo*_*oon 6

你在乘客下跑吗?

那么RailsBaseURI可能就是你想要的.

https://www.phusionpassenger.com/library/deploy/apache/deploy/ruby/#deploying-an-app-to-a-sub-uri

如果没有在乘客下运行,请更新您的问题以显示您的部署情况.

  • 然而,从这些文档中显而易见的是,您需要将变量传递给资产预编译rake任务,以便它在您的资产中生成正确的子uri:rake assets:precompile RAILS_RELATIVE_URL_ROOT =/foo (8认同)