【发布时间】:2011-02-15 16:58:18
【问题描述】:
我们正在为 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) %>
在我们的部署中,我们每次都调用rake tmp:assets:clear。问题是部署后的前几个页面加载后页面上没有 css 或 js。我想直到缓存的 all.js 和 all.css 被重新生成。
我们每天部署多次,这对于碰巧遇到崩溃页面的任何用户来说都是可怕的。
人们有没有找到任何方法让这个过程更顺畅,从而保证新的缓存资产在第一个新页面加载时就在那里?
【问题讨论】:
-
几个问题: 1) 你在不同的机器上有多个应用服务器吗? 2) 模板中 CSS 的缓存行是什么?
-
嗨,斯科特。一台机器上的所有应用服务器。这是一个 css 缓存行的示例:
<%= stylesheet_link_tag 'reset','global','admins','autocomplete', 'date_input', 'tablesorter', 'partners', 'jqmodal', :media => 'screen', :cache => set_asset_cache(:admins) %>我们为管理员、买家、卖家、登录页面等设置了单独的缓存行(每个布局一个)。谢谢!
标签: ruby-on-rails caching assets