0

所以我试图在我的 routes.rb 中进行重定向。当我离开我的域时出现错误。

match "/partners/" => redirect("/partners.html")

导航到 /partners/ 会给出这个错误页面:

URI::InvalidComponentError

bad component(expected host component): frontend_rails.dev

但是,如果我将整个域放入重定向中,它确实有效。

match "/partners/" => redirect("http://example.com/partners.html")

但是对于我的开发服务器,我不喜欢链接到我们的生产服务器。根据 rails doc,这应该是自动添加的:

在所有这些情况下,如果您不提供主要主机 (http://www.example.com),Rails 将从当前请求中获取这些详细信息。

任何想法为什么它不喜欢我的相对重定向?谢谢!

4

1 回答 1

3

差不多一年后,我终于意识到问题所在。它实际上是一个错误的 URI。GitHub 中的存储库名为 frontend_rails。我使用了 Pow 服务器,它根据您的文件夹名称为您提供主机(当您签出项目时,默认为 GitHub 存储库的名称),所以http://frontend_rails.dev

但是,从技术上讲,URI 中不允许使用下划线。这是绊倒了 URI gem。我将我的项目 frontend_rails 符号链接到 frontend-rails ,现在它可以工作了。瞧!

于 2013-10-01T21:06:32.897 回答