由于 ASP.NET 开发服务器 (VS2012) 不允许我们通过 LAN (!!) 访问 URL,并且我没有配置 IIS 的权限,我正在尝试使用 WEBrick 启动一个静态网站,以获得 LAN 访问. 我在 Windows 上运行带有 vagrant 的 Ubuntu。
在我的静态网站的根目录中,我创建了一个app.rb
包含以下内容的文件:
#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)网站?
编辑
我按照斯图尔特的建议将代码更改为:
return [200, {"Content-Type" => "text/html"}, ["index.html"]]
现在,当我浏览 URL 时,它会将“index.html”呈现为字符串,而不是呈现文件内容。