Без дополнительной настройки Sinatra будет обслуживать ресурсы в общедоступных
. Для пустого маршрута вы захотите отобразить индексный документ.
require 'rubygems'
require 'sinatra'
get '/' do
File.read(File.join('public', 'index.html'))
end
Маршруты должны возвращать строку
, которая становится телом ответа HTTP. File.read
открывает файл, читает файл, закрывает файл и возвращает String
.
Как насчет этого решения? :
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
Sinatra должен позволить вам обслуживать статические файлы из общедоступного каталога , как описано в документации :
Статические файлы
Статические файлы обслуживаются из каталога ./public. Вы можете указать другое местоположение, установив параметр: public:
Обратите внимание, что имя общего каталога не включено в URL-адрес. Файл ./public/css/style.css доступен как example.com/css/style.css.