[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:48189] Re: eRubyが動かない (sarge --> etch)
武藤@Debianぷろじぇくとです。
At Mon, 19 Mar 2007 18:03:22 +0900,
KAWAFUJI Mitsuhiro wrote:
> しかし、eRubyの方がダメで、
> test.rhtml
> のアクセスでは、ブラウザはファイルをダウンロードしようとします。
> eruby/test
> のようにするとファイルの中身がそのまま表示されます(改行はなくなり
> ますが)。
<% %>を含んだファイル「そのまま」が出るのですか。
> # for Apache::ERubyRun
> RubyRequire apache/eruby-run
> <Files *.rhtml>
> SetHandler ruby-object
> RubyHandler Apache::ERubyRun.instance
> </Files>
この設定だけにして、<% puts 1+2 %>のような簡単なrhtmlに対して
試してみたところ、eRubyによる処理は行われるものの、
Content-Type: application/x-httpd-eruby で返ってくるので
ブラウザがバイナリ扱いで保存しようとしますね。
/usr/lib/ruby/1.8/apache/eruby-run.rbの末尾のほうに
unless r.content_type
r.content_type = format("text/html; charset=%s", ERuby.charset)
end
というところがあるのですが、このときにr.content_typeには
「application/x-httpd-eruby」がすでに入ってしまっているため、
text/htmlへの書き換えが行われることなくContent-Typeの出力が
されてしまっているようです。
このunless行とend行をコメント化してApache2をreloadすると、
text/html形式でブラウザで正常に表示されます。
このあたりはmod-ruby側では何も変えてないようなので、RubyかApacheの
変更が何か影響しているのだろうとは思います。
--
Kenshi Muto
kmuto@debian.org