У вас есть несколько способов заставить index.html работать в ваших общих папках. Самый быстрый вариант будет состоять в том, чтобы сервер балансировки нагрузки (например, Nginx или Apache) обслуживал статические файлы. Nginx и Apache в основном делают это из коробки.
Другим способом является ручное чтение и отправка файлов по маршруту Синатры. Таким образом вы получите больше контроля, но немного потеряете скорость и будете использовать больше памяти. Вы можете сделать это так:
get "/:year/:month/:day/:title" do |*path|
File.read(File.join(settings.public, path, "index.html"))
end
Вы можете получить список своих сообщений, используя класс Dir:
get "/archive" do
@posts = Dir["#{settings.public}/**/index.html"].map do |post|
File.dirname(post).sub(settings.public, "")
end
haml :archive
end