在声明要在 appcache 清单中缓存哪些文件时,有没有办法包含带有动态名称的文件?
例如正在由 rails 编译的资产。
资产/应用程序-12315123213123151asd.js
在这种情况下,我想做这样的事情,
MANIFEST
CACHE
/assets/*.js
或者
MANIFEST
CACHE
/assets/application-*.js
在声明要在 appcache 清单中缓存哪些文件时,有没有办法包含带有动态名称的文件?
例如正在由 rails 编译的资产。
资产/应用程序-12315123213123151asd.js
在这种情况下,我想做这样的事情,
MANIFEST
CACHE
/assets/*.js
或者
MANIFEST
CACHE
/assets/application-*.js
我做了自己的 rake 任务,而不是使用诸如 rack-offline 之类的 gem,它似乎在很长一段时间内都没有更新。
#encoding: utf-8
desc "Create html5 appcache manifest"
task :html5_manifest => :environment do
File.open("public/offline.appcache", "w") do |f|
f.write("CACHE MANIFEST\n")
f.write("# #{Time.now.to_i}\n")
assets = Dir.glob(File.join(Rails.root, 'public/assets/**/*'))
assets.each do |file|
if File.extname(file) != '.gz'
f.write("assets/#{File.basename(file)}\n")
end
end
# f.write("NETWORK\n")
# f.write("*\n")
# f.write("FALLBACK:\n")
# f.write("...")
end
end
部署到服务器时,将此作为任务放入您的 cap 文件中
我知道这个线程已经很老了,但是为什么不路由到 Rails 控制器来提供文件并将其动态组合在一起呢?很像 rake 任务,但它不需要在部署时生成。这将解决 Heroku 问题......