ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

CGIを生で使ってて、cgi.outを呼ばなかったばかりに延々と500 Internal Server Error で悩まされた件。


例により既出甚だしく、しかもRoR全盛のこの時期にこんな事する時代遅れの人間は居なかろうと思うが・・・。

勉強に、CGIを生で使うCGIを書いてたんですよ。

#!.../ruby.exe
require 'cgi'
cgi = CGI.new
puts "AAAA"

これで500 Internal Server Errorcgi使わずにベタでContent-Typeとか書き出していれば問題なし。
あっれ〜〜〜???おっかしいなあ〜〜〜と数日くらい(w はまってたのですが。

CGI、これ、CGI#out呼ばないとヘッダーが送出されない。つまり、厭でもCGI#out使わないとだめ。

#!.../ruby.exe
require 'cgi'
cgi = CGI.new
cgi.out { "AAAAA" }

これでオッケー。outのブロックは結局、文字列として扱われているみたいなので、最終的に文字列として評価されるブロックにしておくみたい。