обслуживание изображений с использованием Webrick

#ruby #webrick

#ruby #webrick

Вопрос:

Мне нужно получить несколько изображений из папки на компьютере пользователя и отобразить их на веб-странице с использованием сервера webrick. Я использую следующий код для сканирования каталога, а затем включаю путь к веб-серверу. Я получаю правильные пути к изображениям, но я получаю ошибку 404 от Webrick при попытке получить доступ к странице. Я перемещал файлы и менял разрешения без какого-либо успеха. У меня такое чувство, что webrick запускается из местоположения, скрытого внутри папки usr, но я не уверен, как это проверить и как правильно создать путь к изображению для него. Любая помощь была бы высоко оценена.

 require 'webrick' 
include WEBrick

s = HTTPServer.new(Port: 2000)

class HelloServlet < HTTPServlet::AbstractServlet 

def do_GET(req, res)

  search_dir = 'users/user/Dropbox/ads_dir'
  files = Dir[ search_dir   '/*.jpg']
  p @file0 = files[0].to_s    
  p @file1 = files[1].to_s    
  p @file2 = files[2].to_s    
  p @file3 = files[3].to_s 

res['Content-Type'] = "text/html"
res.body = %{
        <img class="img1" src="#{@file0}"/>
        <img class="img2" src="#{@file1}"/>
        <img class="img3" src="#{@file2}"/>     
        <img class="img4" src="#{@file3}"/>
  </body> 
  </html>
}
  

Ответ №1:

Если ваш путь к изображениям похож, /home/users/images вы должны объявить DocumentRoot :

 s = HTTPServer.new(Port: 2000, DocumentRoot: "/home/users")
  

И тогда вы можете получить доступ к изображению:

 http://localhost/images/image1.jpg