Как я могу использовать локальные ресурсы, такие как css
, js
, png
и т. Д. В динамически отображаемой странице, используя webrick?Другими словами, как работают такие вещи, как Ruby on Rails, связывающие ?Я предполагаю, что это одна из самых основных вещей, и должен быть простой способ сделать это.
Возможное решение
Мне удалось сделать то, что я хотел, используядва сервлета следующим образом:
require 'webrick'
class WEBrick::HTTPServlet::AbstractServlet
def do_GET request, response
response.body = '<html>
<head><base href="http://localhost:2000"/></head>
<body><img src="path/image.png" /></body>
</html>'
end
end
s1 = WEBrick::HTTPServer.new(Port: 2000, BindAddress: "localhost")
s2 = WEBrick::HTTPServer.new(Port: 3000, BindAddress: "localhost")
%w[INT TERM].each{|signal| trap(signal){s1.stop}}
%w[INT TERM].each{|signal| trap(signal){s2.shutdown}}
s1.mount("/", WEBrick::HTTPServlet::FileHandler, '/')
s2.mount("/", WEBrick::HTTPServlet::AbstractServlet)
Thread.new{s1.start}
s2.start
Это правильный способ сделать это?Я не чувствую себя так.Кроме того, я не совсем доволен этим.Во-первых, мне не нравится тот факт, что я должен указать http://localhost:2000
в теле.Другое использование потоков не кажется правильным.Есть лучший способ сделать это?Если вы считаете, что это правильный путь, ответьте, пожалуйста.