【问题标题】:Rails Redirect Route Bad Host ComponentRails 重定向路由错误主机组件
【发布时间】:2013-01-24 20:05:22
【问题描述】:

所以我试图在我的 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 将从当前请求中获取这些详细信息。

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

【问题讨论】:

  • 尝试省略几个字符:匹配的最后一个/ 和目标的.html 扩展名:match "/partners" => redirect("/partners")。它应该适合 Rails API Docs Example 这种方式。

标签: ruby-on-rails routes


【解决方案1】:

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

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

【讨论】:

  • 赫尔卡!我也花了一个小时才弄清楚这一点。感谢您发布解决方案。
猜你喜欢
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 2021-08-22
  • 1970-01-01
  • 1970-01-01
  • 2018-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多