I'm using WEBrick to start a local server on port 2000 and trying to execute Ruby with ERB. (I have Ruby 1.9.2 installed on my OS X box). It doesn't seems to work.
For example, I created an erb file (tryErb.erb) like this:
<!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>
I used chmod a=rwx tryErb.erb to make the file executable, but if I try to visit the proper URL (http://localhost:2000/tryErb.erb), nothing seems to work. The browser doesn't go anywhere; it simply stays on the root's index.
The log in the bash shell shows:
localhost - - [12/May/2011:10:12:05 CEST] "GET /tryErb.erb HTTP/1.1" 200 199 http://localhost:2000/ -> /tryErb.erb
Any ideas?
Ok figured this one out, not completely though. You need to specify mime type :MimeTypes => {'rhtml' => 'text/html'}, i copied this from http://www.ruby-forum.com/topic/96436, recognizes rhtml and runs what ever ruby code you have in <%...%>.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With