ASP.NET 開発サーバー (VS2012) では LAN 経由で URL にアクセスできず (!!)、IIS を構成する権限がないため、WEBrick を使用して静的 Web サイトを起動し、LAN アクセスを取得しようとしています。 . Windowsでvagrantを使用してUbuntuを実行しています。
app.rb
静的 Web サイトのルートに、次の内容のファイルを作成しました。
#app.rb
require 'rubygems'
require 'rack'
class App
def call(env)
return [200, {"Content-Type" => "text/html"}, "index.html"]
end
end
Rack::Handler::WEBrick.run(App.new, :Port => 8080)
サーバーを実行すると; ruby app.rb
を参照してhttp://localhost:8080
、次のエラーが表示されます。
ERROR NoMethodError: undefined method `each' for "index.html":String
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/rack-1.4.5/lib/rack/handler/webrick.rb:71:in `service'
/usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
/usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
/usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
WEBrick または Thin を使用して静的 (HTML / JS) Web サイトを実行する方法はありますか?
編集
Stuart の提案に従い、コードを次のように変更しました。
return [200, {"Content-Type" => "text/html"}, ["index.html"]]
現在、URL を参照しているときに、ファイル コンテンツをレンダリングする代わりに、"index.html" を文字列としてレンダリングします。