WEBrick 加载资产文件时出错

WEBrick error loading asset files

当我 运行 一个 WEBrick 服务器实例并将我的浏览器指向 localhost:2000/so_question 时,服务器抛出以下错误: 一世。错误 /some_image.jpg 未找到。 二.错误 /jquery.min.js 未找到。

示例代码:

require 'webrick'; include WEBrick
s = HTTPServer.new Port: 2000

class SoQuestion < HTTPServlet::AbstractServlet

def do_GET req, resp
  resp.status = 200
  resp['Content-Type'] = 'text/html'
  resp.body = prep_body
end

def prep_body
  body = %(
  <!DOCTYPE html>
  <html>
  <head>
  <title></title>
  </head>
  <body>
)
  body << '<p>Hello, world!</p>'
  body << "<img src='some_image.jpg'>"
  body << "<script src='jquery.min.js'></script>"
  body << '</body></html>'
end

end

s.mount '/so_question', SoQuestion
trap('INT'){s.shutdown}
s.start

如何修复这些错误?请提出一个纯 Ruby 解决方案(没有宝石,请)。

谢谢。

您需要创建一个挂载点来为您的静态文件提供服务。

将此行放在 s.mount "/so_question"

之后

s.mount "/", WEBrick::HTTPServlet::FileHandler, './'

然后 Webrick 将在 ./ basedir

提供静态文件