【发布时间】:2011-03-30 20:45:35
【问题描述】:
我正在尝试在 Sinatra 中设置离线机架,但设置时遇到问题。在 Rails 中这很容易,但在 Sinatra 中没有找到任何示例...
【问题讨论】:
标签: ruby sinatra offline-caching
我正在尝试在 Sinatra 中设置离线机架,但设置时遇到问题。在 Rails 中这很容易,但在 Sinatra 中没有找到任何示例...
【问题讨论】:
标签: ruby sinatra offline-caching
基本上,在您的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
记得在你的html 标签中设置manifest="/application.manifest",你应该很高兴。您应该查看 rack-offline's README 以获取更多文档和有关其工作原理的说明。
【讨论】: