Rails 4使用cache_digests(https://github.com/rails/cache_digests)来协助片段缓存失效:cache_digests创建模板的MD5哈希及其所有已知依赖项,允许片段缓存通过在分配新密钥时变为无效模板或其依赖项更改.
我的问题是:stylesheet_link_tag
如果application.css文件的MD5哈希在期间发生变化,片段缓存包装是否会失效rake assets:precompile
?现在在标题中执行此操作:
<% 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
.然后如果application-xxxxxxx.css
离开public/assets
,这将导致一个丑陋的页面.