我试图在西纳特拉设置机架离线,但设置时遇到问题在rails中这很简单,但是在Sinatra中没有发现任何例子。。。

最佳答案

基本上,在config.ru中,将/application.manifest映射到Rack::Offline。(如果您不熟悉如何在Sinatra应用程序中使用config.ru,请查看this part of Sinatra docs)下面是一个示例,它将缓存目录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,您应该可以很好地开始。您应该查看rack-offline's README以获取有关其工作原理的更多文档和说明。

10-05 20:57