所以我正在尝试在我的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将从当前请求中获取这些详细信息。
为什么它不喜欢我的相对重定向?谢谢!
答案 0 :(得分:3)
差不多一年后,我终于意识到问题所在。它实际上是一个糟糕的URI。 GitHub中的回购称为frontend_rails。我使用了Pow服务器,它根据你的文件夹名称给你一个主机(当你检查项目默认为GitHub仓库的名称时),所以http://frontend_rails.dev。
但是,技术上不允许在URI中使用下划线。这是对URI宝石的绊倒。我将我的项目frontend_rails符号链接到frontend-rails,现在它可以工作了。 Voilà!