По сути, в вашем config.ru
отображается /application.manifest
на Rack::Offline
. (Если вы не знакомы с использованием config.ru
с приложением Sinatra, ознакомьтесь с этой частью документации Sinatra .) Вот пример, который кэширует все файлы в каталоге public
:
require 'your-app'
require 'rack/offline'
map "/application.manifest" do
offline = Rack::Offline.new :cache => true, :root => "public" do
# Cache all files under the directory public
Dir[File.join(settings.public, "**/*")].each do |file|
cache file.sub(File.join(settings.public, ""), "")
end
# All other files should be downloaded
network '/'
end
run offline
end
map "/" do
run Sinatra::Application
end
Не забудьте установить manifest="/application.manifest"
в своем теге html
, и вы должны быть в порядке. Вам следует взглянуть на README rack-offline для получения дополнительной документации и объяснения того, как она работает.