Обслуживание статических файлов с помощью Sinatra

138
задан TK. 13 March 2010 в 05:38
поделиться

3 ответа

Без дополнительной настройки Sinatra будет обслуживать ресурсы в общедоступных . Для пустого маршрута вы захотите отобразить индексный документ.

require 'rubygems'
require 'sinatra'

get '/' do
  File.read(File.join('public', 'index.html'))
end

Маршруты должны возвращать строку , которая становится телом ответа HTTP. File.read открывает файл, читает файл, закрывает файл и возвращает String .

130
ответ дан 23 November 2019 в 23:26
поделиться

Как насчет этого решения? :

get "/subdirectory/:file" do 
  file = params[:file] + "index.html"
  if File.exists?(params[:file])
    return File.open("subdirectory/" + file)
  else
   return "error"
  end
end

поэтому, если вы теперь перейдете в (например) / подкаталог / test /, он загрузит подкаталог / test / index.html

-7
ответ дан 23 November 2019 в 23:26
поделиться

Sinatra должен позволить вам обслуживать статические файлы из общедоступного каталога , как описано в документации :

Статические файлы

Статические файлы обслуживаются из каталога ./public. Вы можете указать другое местоположение, установив параметр: public:

Обратите внимание, что имя общего каталога не включено в URL-адрес. Файл ./public/css/style.css доступен как example.com/css/style.css.

12
ответ дан 23 November 2019 в 23:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: