ruby-on-rails - 在 Apache 下的子目录中配置 Ruby On Rails App

标签 ruby-on-rails ruby apache2 windows-server-2003

我在 Windows 上安装了 apache2.2。我正在尝试同时提供颠覆 (/svn) 和 redmine (/redmine)。我的 svn 使用此配置运行良好:

<Location /svn>
  DAV svn
  SVNParentPath C:/svn_repository
  ...
</Location>

这很好用——我的 svn 用户可以点击 http://mybox/svn就好了。

现在我想为 Rails 应用程序 (RedMine) 添加另一个目录:

我遵循了 this question 中的建议设置杂种服务器并让 apache 代理客户端连接到它。如果我将它设为根目录,它工作正常——但我在将它设为子目录时遇到了问题:

<Location /redmine>
  ProxyPass http://localhost:3000/
  ProxyPassReverse http://localhost:3000/
</Location>

有什么建议吗?

最佳答案

这是我必须更改的内容:

我删除了结尾的斜线:

<Location /redmine>
  ProxyPass http://localhost:3000
  ProxyPassReverse http://localhost:3000/
</Location>

在我的 Rails 应用程序中:

# added to end of file C:\redmine\config\environment.rb
ActionController::AbstractRequest.relative_url_root = "/redmine"

现在可以了!


我对这种方法不是很满意——我遇到了一些重定向问题。这是迄今为止似乎运作良好的另一种尝试。

第二种方法似乎更好。


更新:

如评论中所述,对于在 Rails 2.3.2+ 上运行的最新应用程序,请改用它:

config.action_controller.relative_url_root = '/redmine'

我把它放在新的 additional_environment.rb 文件中。

关于ruby-on-rails - 在 Apache 下的子目录中配置 Ruby On Rails App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/470961/

相关文章:

ruby-on-rails - Backbone.js 和 Rails 3 如何构建具有身份验证的应用程序?

ruby - 构建 HTTP RESTful API(特定于 Ruby)

ruby - Ruby语法错误,输入意外终止,应使用keyword_end

.htaccess 将图像文件重写为 php 脚本

ruby-on-rails - 查询,无法选择列数

ruby-on-rails - Rails 4 删除了测试生成器(尤其是 test_unit)

php - Symfony2 app_dev.php 只有错误 500 脚本过早结束

apache - 如何获得编辑apache2.conf文件的权限? [Ubuntu]

javascript - Grouped_select,如何显示先前选择的项目和/或类别

ruby - 在 Jekyll 中,如何生成年份页面?