我正在尝试使用rials离线机架,以使我的网页脱机使用。默认情况下,机架脱机会将公用文件夹中的所有文件都放入缓存清单中。我应该在哪个文件中进行更改,以便将我想要的文件添加到缓存清单中。我想在我的views文件夹中包含该文件。
答案 0 :(得分:7)
您需要将其添加到routes.rb文件中。这是我的routes.rb文件,带有自定义清单。这将为您提供索引和新路由以及公共根目录中的所有html文件(* .html)以及子文件夹中的所有文件到public(* / *。*)。你可以根据需要对公共文件夹中的内容进行切片和切块。
我不知道如何在离线时获取数据库特定的路线,如show和edit。我想象Javascript是必需的。查看Railscast episode 248了解集成JS的一些想法
OfflineConfirm::Application.routes.draw do
#match '/application.manifest' => Rails::Offline
resources :contacts
offline = Rack::Offline.configure do
cache ["contacts/new", "contacts"]
public_path = Rails.root.join("public")
Dir[public_path.join("*.html"),
public_path.join("*/*.*")].each do |file|
p = Pathname.new(file)
cache p.relative_path_from(public_path)
end
network "/"
end
match '/application.manifest' => offline
end
上面的路线文件将产生以下application.manifest
CACHE MANIFEST
# 700ae3e3002382cb98b93c299d7b7bda151183b4703ef65d4c46b0ecf9c46093
contacts/new
contacts
404.html
422.html
500.html
index.html
images/rails.png
javascripts/application.js
javascripts/jquery.js
javascripts/jquery.min.js
javascripts/rails.js
stylesheets/scaffold.css
NETWORK:
/
答案 1 :(得分:0)
没有服务器,视图文件夹中的所有文件都不可用。您想在缓存清单中建立路由吗?例如“/ about”,例如对应于“views / about.haml”文件?
将此添加到您的配置中:
offline = Rack::Offline.configure do
cache "about" # or whatever your route is
public_path = Rails.public_path
Dir[public_path.join("javascripts/*.js")].each do |file|
cache file.relative_path_from(public_path)
end
end