Rails 4使用cache_digests(https://github.com/rails/cache_digests)来帮助片段缓存失效:cache_digests会创建一个模板及其所有已知依赖项的MD5哈希,当模板或其依赖项更改时,它允许片段缓存通过分配新键来失效。我的问题是:如果在
rake assets:precompile
期间应用程序.css文件的MD5哈希值发生更改,那么包装stylesheet_link_tag
的片段缓存是否会失效?现在我们在头部执行此操作:<% cache("header-cache-key") do %>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
<% end %>
这个安全吗?我的担忧是当 CSS 或 JS 发生更改时,application-xxxxxxx.css
将变成 application-yyyyyyy.css
,但我们的头部将会缓存旧的 application-xxxxxxx.css
。然后如果 public/assets
中没有了 application-xxxxxxx.css
,这将导致页面出现问题。