Rails HTML5 Cache manifest 在 Rails 中的应用

ningzhang422 · 2016年09月02日 · 1786 次阅读

大家肯定都听说过 html5 很多的新特性,html5 都出好多年了,说新不新了。今天我们来讨论一下 html5 cache manifest,应用程序缓存。 这个应用程序缓存的好处主要有三点,W3School 概括的挺好的

  • 离线浏览 - 用户可在应用离线时使用它们
  • 速度 - 已缓存资源加载得更快
  • 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。

关于 manifest 文件的创建,基本格式可以在上面的链接里了解。我感兴趣的是如何在客户端处理静态资源缓存 (JS,CSS),减少 HTTP 请求开销,给我的应用提速。

如何在 rails 使用它

可以用这个 gem rack-offline 来实现。 这个 gem 帮我们来管理 Manifest 文件的版本,触发使浏览器重新缓存文件的办法。我们只需要去考虑把什么东西放到客户端的浏览器缓存里去。 我们只需要去 config/routes.rb 里加入

offline = Rack::Offline.configure do``
      cache ActionController::Base.helpers.asset_path("application.css")
      cache ActionController::Base.helpers.asset_path("application.js")
      network "/"
end

get "/app.manifest" => offline

这段 routing 会帮你新建一个 Manifest 文件:url 地址 http://”host”/app.manifest。 文件内容如下

CACHE MANIFEST
# bfecba583c42df59c0573cfad91afe7f96c70ec8bef90c369af1d5f6581a47e8
/assets/application.css
/assets/application.js

NETWORK:
/

application.jsapplication.css 将被放置到浏览器缓存里,而所有其他在/后的文件都要在每次的 http request 向服务器拽取。

如果你确定你的应用的用户群所使用的浏览器支持 html5, HTML5 cache manifest 未尝不是一个解决静态资源缓存的好办法,你们说呢?

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号