トップ «前の日記(2006-11-26) 最新 次の日記(2006-12-01)» 編集

活動日誌


2006-11-27

[Ruby][Rails]lighttpd + Relative Path プラグインの不具合

Ruby 1.8.5, Rails 1.1.6, lighttpd 1.4.13 に Relative Path プラグイン (Revision 21) の組み合わせで不具合が発生した。

まず、

ruby script/generate controller item show

で適当にコントローラを作る。

Relative Path プラグインをインストール。

ruby script/plugin install http://opensvn.csie.org/relative_path/trunk/
mv vendor/plugins/trunk vendor/plugins/relative_path

lighttpd の設定ファイルをコピー。

cp /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6/configs/lighttpd.conf config
ruby script/server lighttpd

で lighttpd を起動し、/item/show/1 にアクセスすると Routing Error になる。

Recognition failed for "item/show/1"

/item/show/1 にアクセスするには /a/item/show/1 にアクセスしなければならない。('a' の部分は何でもよい)

webrick と mongrel では問題なかった。

できる範囲で動作を追いかけてみたが、 ActionController::Routing::RouteSet#recognize で使われている request.path が、webrick では /item/show/1 のように 先頭に / が付いているのに対し、lighttpd では item/show/1 のように先頭の / がなくなっていた。

また、webrick の場合は relative_uri_root が '' に、lighttpd の場合は '/' に設定されていた。 何か関係がありそうだが、今日のところは時間切れ。

(どうやら作業中とのことらしいので、作業前と思われる Rev.18 まで戻してみたが同様だった)

一応、config/environment.rb に

ActionController::AbstractRequest.relative_url_root = ""

と書いておけば問題ないようだ。

本日のツッコミ(全3件) [ツッコミを入れる]
_ cuzic (2006-11-27 20:55)

まだリリースできない段階であるのに、検証くださいましてありがとうございました。<br><br>lighttpd での検証はちょっと後手に回っていました。<br>今から追跡調査を実施します。

_ TrackBack (2006-11-27 22:11)

http://d.hatena.ne.jp/cuzic/20061127/1164633050<br>プログラミングは素晴らしい<br>[Rails] Relative Path プラグイン更新作業、続き<br> 昨日、前振りをした Relative Path プラグインを早くも検証してくださった方がいたようです。まだ検証が不十分だというのに使ってもらえてとても嬉しいです。 lighttpd + Relative Path プラグインの不具合 上記の URL で行われている不具合対応には早速対応し trunk に反映

_ yanagi (2006-11-29 00:50)

すばやい対応ありがとうございました。日記をアップしてから1時間ほどで更新されていたのでびっくりしました。<br><br>lighttpd + fastcgi で試してみましたが、なぜか URI() が見つからないというエラーが出たので、とりあえず URI() を URI.parse() に直したら無事に動きました。なぜ URI() が見つからないのかは全く謎です。


2005|02|03|04|05|06|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|03|04|05|06|10|
2008|04|10|
2009|10|
2010|05|08|
2012|01|02|03|
2014|01|
2022|05|
トップ «前の日記(2006-11-26) 最新 次の日記(2006-12-01)»