Apache+Mongrelの仕組みで、link_toは正しいurlを生成できない

RailsアプリケーションとMongrelサーバを用いた環境において、リンク生成におけるrelative_url_rootの設定問題とその解決策を説明。特定のパスを指定することで、Mongrelサーバとの連携を改善し、正しいリンク生成を実現。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux+Mongrelの仕組みで、Railsアプリのサーバを立てた。Mongrelさーばのportは3000です。Apacheはプロキシ・サーバとして、’http://127.0.0.1/memory’へのrequestをMongrelサーバに転送する。然し、ビューの中、link_toで生成したリンクについて、’/memory’がなかった。

これは、Mongrelサーバがrelative_url_rootを自動的に取得できないのせいだ。

Environment.rbの中に、

ActionController::AbstractRequest.relative_url_root = “/memory”を追記すると、< %= link_to :controller => ui, :action => ‘login’ %>ようなケースを直せる。

ただ、link_toに直接にurlを書くケースはまたできない。リンクの前に、request.relative_url_root の追加が必要です。

< %= link_to(h(@content.name), “#{request.relative_url_root}/ui/contents/#{@content.id}/original”) %>

また、relative_url_rootを記述したくないリンクは、:skip_relative_url_root => true を追加しましょう。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值