1


0

Rails:実行中のポートを明示的にrailsに伝えます

次のような問題があります。 _urlヘルパーが自動検出されたポートの代わりにそのポートを使用するように、railsが実行されているポートを明示的に伝えたいと思います。

根本的な問題は、私がRailsアプリを提供するシンと静的コンテンツを提供するapacheがあることです。 これは、Webサイトがポート80(apache)でアクセスされる限り正常に機能しますが、Thinが実行されているポートでアクセスされる場合は機能しません。 (これは、自動検出されるポートです。)

2 Answer


0


Ruby on Railsは独自のサーバーを使用するため、Webサイト(およびその後のRuby on Railsアプリケーション)にアクセスするユーザーは、適切なポートにリダイレクトする必要があります。

Ruby on Railsサーバーのポートを変更するには、-pオプションを使用してサーバーを起動する必要があります。

ruby s -p


0


Railsは、完全修飾ドメイン名を含まない相対リンクを作成することになっています。例を参照してくださいhttp://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to[here]、I見積もり :

link_to "Profile", profile_path(@profile)

# => Profile;

一方、* _ urlショートカットはフルパスを使用していますが、これはリバースプロキシの背後にいる場合には不適切です(この場合はapacheです)。

リンクに* _pathのみ、リダイレクトに* _urlのみを使用してみましたか?

url_forを使用する場合は、 :only_path to true.

Apacheの設定がProxyPassに基づいていない場合、この回答を修正できるように、興味深い部分をコピー/貼り付けしてください。

前もって感謝します。