ASP.NET 개발 서버 (VS2012)는 LAN을 통해 URL에 액세스 할 수 없기 때문에 (!!) IIS를 구성 할 권한이 없으므로 WEBrick을 사용하여 정적 웹 사이트를 시작하고 LAN 액세스를 얻으려고합니다. 우분투는 Windows에서 방랑과 함께 운영되고 있습니다. 내 정적 웹 사이트의 루트에 Webrick 또는 Thin to run (non-ruby) 정적 웹 사이트
, 나는 다음과 같은 내용으로 파일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
을 찾아, 그것은 나에게이 오류 제공 :에 WEBrick를 사용하는 방법이 있나요
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'
또는 정적 (HTML/JS) 웹 사이트를 실행하는 씬?
편집 나는 스튜어트의 제안을 따라에 코드를 변경 : 나는 URL을 탐색하고 때
return [200, {"Content-Type" => "text/html"}, ["index.html"]]
지금, 대신 파일 내용을 렌더링 문자열로 "index.html을"렌더링합니다.
@Annie가 원래 히트 한 것과 같은 이유 때문에 필자가 대답에서 설명했듯이 '내용'을 배열 (예 :'[contents]')로 묶어야합니다. 당신의 답을 그대로 풀려고했을 때 : NoMethodError : #에 대한 정의되지 않은 메소드'each '가 있습니다. –
@StuartM! – FilipK
감사합니다. app.rb에 코드 블록을 붙여 넣은 다음 복사 한 코드를 복사했습니다. 동일한 경로를 따르는 사용자의 경우 고정 포트를 설정해야한다면'port = 12000 + (dir.hash % 1000)'을'port = your_port_number'로 바꾸고, 그렇지 않으면 12XXX 포트에서 서버를 시작합니다 코드에서 볼 수 있습니다). – Annie