Rails资产缓存中断前几页加载

Bri*_*ong 6 caching assets ruby-on-rails

我们正在为JS和CSS使用Rails资产缓存,如下所示:

<%= stylesheet_link_tag 'reset','global','admins','autocomplete', 'date_input', 'tablesorter', 'partners', 'jqmodal', :media => 'screen', :cache => set_asset_cache(:admins) %>
<%= javascript_include_tag :defaults, 'autocomplete', 'searchbox', 'jqmodal', :cache => set_asset_cache(:admins) %>
Run Code Online (Sandbox Code Playgroud)

在我们的部署中,我们rake tmp:assets:clear每次致电.问题是部署后的前几页加载在页面上没有css或js.我想直到缓存的all.js和all.css已经重新生成.

我们每天部署很多次,这对碰巧遇到破坏页面的任何用户来说都很可怕.

有没有人找到任何方法使这个更顺畅,所以新的缓存资产保证在第一个新的页面加载?

Ron*_*era 3

AssetHat gem 解决了这个问题。它不是在第一次加载页面时连接资产(这会增加该页面的加载时间),而是在部署时连接资产。作为奖励,gem 还可以缩小 CSS 和 JS,从而节省宝贵的字节。

设置完成后,使用非常简单:

  • 在布局中使用include_css :bundle => 'admins'and 。include_js :bundle => 'admins'(捆绑包内容在配置文件中设置,以保持布局轻量级。)
  • 添加rake asset_hat:minify到您的部署脚本。我的公司已经在 Capistrano 的生产中使用它大约一年了。

自述文件文档中有更多信息,我很高兴听到任何问题/想法!