続々・色々と動かなかった話

2010年2月 9日
| コメント(0) | トラックバック(0) 続々・色々と動かなかった話

NanoAの話ですが。
オフィシャルのcompile_errorはちゃんと動作するのだが、XREAではcompile_errorは動かない。
まあ、XREAはよいとしても、ローカル環境でも動かないのがとてもつらい。
CGI::ExceptionManagerがちゃんと働いていれば、コンパイル時のエラーも補足してくれるはずなのだが…。

と、思ってソースを見ていると、原因っぽいところがわかりました。

CGI::ExceptionManagerのoutputで、HTTPステータス500を出力していますが、そこの改行コードに問題があったようです。

「\r\n」になっているところを「\n」に変えてやるとちゃんとローカル環境でも動きました。
ただ、これがHTTP的に正しいのかどうかが少し疑問です。

…と、思ったのですが。
先日変更したステータス302の出力は「\n」でやっていました。

とりあえず、extlibにあったCGI::ExceptionManager::StackTrace::CGIは以下のように変更しました。

Index: CGI.pm
===================================================================
--- CGI.pm	(リビジョン 36612)
+++ CGI.pm	(作業コピー)
@@ -8,9 +8,9 @@
     
     warn $err->{message};
     
-    print "Status: 500\r\n";
-    print "Content-type: text/html; charset=utf-8\r\n";
-    print "\r\n";
+    print "Status: 500\n";
+    print "Content-type: text/html; charset=utf-8\n";
+    print "\n";
 
     my $body = $args{renderer} ? $args{renderer}->($err, %args) : $err->as_html(%args);
     utf8::encode($body);


うーん。
ちゃんと動くようになって、なんだか、とってもスッキリしました。

トラックバック(0)

このブログ記事に対するトラックバックURL:

コメントする

Google検索

Last.fm

このブログ記事について

このページは、のぶりんが2010年2月 9日 04:06に書いたブログ記事です。

ひとつ前のブログ記事は「NanoAでインデックスページを作ると良いことがあった」です。

次のブログ記事は「気がつけばログイン出来るようになっていた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.
Powered by Movable Type