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

ほぼ1年後、ようやく問題が何であるかに気づきました。実際には不適切な URI でした。GitHub のリポジトリは frontend_rails と呼ばれていました。私は Pow サーバーを使用しました。これは、フォルダー名 (プロジェクトをチェックアウトすると、デフォルトで GitHub リポジトリの名前になります) に基づいてホストを提供するため、http://frontend_rails.devです。

ただし、技術的にアンダースコアは URI では許可されていません。これは URI gem をつまずかせていました。プロジェクト frontend_rails を frontend-rails にシンボリック リンクしたところ、動作するようになりました。ほら!

于 2013-10-01T21:06:32.897 に答える