3

WEBrick を使用してポート 2000 でローカル サーバーを起動し、ERB で Ruby を実行しようとしています。(私の OS X ボックスには Ruby 1.9.2 がインストールされています)。うまくいかないようです。

たとえば、次のような erb ファイル (tryErb.erb) を作成しました。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>try erb</title>
</head>
<body>
    <p> % 99.downto(96) do |number|
    <%= number %> bottles of beer…
    % end
    </p>
</body>
</html>

以前chmod a=rwx tryErb.erbはファイルを実行可能にしていましたが、適切な URL (http://localhost:2000/tryErb.erb) にアクセスしようとすると、何も機能しないようです。ブラウザはどこにも行きません。ルートのインデックスに留まるだけです。bash シェルのログには次のように表示されます。

localhost - - [12/May/2011:10:12:05 CEST] "GET /tryErb.erb HTTP/1.1" 200 199 http://localhost:2000/ -> /tryErb.erb

何か案は?

4

1 に答える 1

4

完全ではありませんが、これを理解しました。MIME タイプを指定する必要があります:MimeTypes => {'rhtml' => 'text/html'}、私はhttp://www.ruby-forum.com/topic/96436からこれをコピーし、rhtml を認識し、今までの ruby​​ を実行します<%...%> にあるコード。

require 'webrick'

include WEBrick

def start_webrick(config = {})
    # always listen on port 3000
    config.update(:Port => 3000)
    config.update(:MimeTypes => {'rhtml' => 'text/html'})
    server = HTTPServer.new(config)
    yield server if block_given?
    ['INT', 'TERM'].each {|signal| 
        trap(signal) {server.shutdown}
    }
    server.start
end

start_webrick(:DocumentRoot => Dir::pwd)
于 2011-05-12T16:17:29.247 に答える