【发布时间】:2011-08-15 00:07:25
【问题描述】:
考虑以下 CSS:
.my_class {
background-image: url(/images/sprites.png);
}
有时我会通过添加新的精灵来更改sprites.png,所以我不希望浏览器缓存它。
我想到的一个想法是将style="background-image: url(/images/sprites.png?<random_number_here>)"添加到类my_class的所有元素中,并删除上面的CSS代码。
但是,由于可维护性问题,我不喜欢这个解决方案(例如,如果文件名更改,我必须在很多地方更改它,而不是单个 CSS)。
这个问题还有哪些其他解决方案?
【问题讨论】:
-
为什么不在有变化的时候让缓存过期呢?客户端应该在显示本地缓存之前查询服务器并查看内容是否被修改。
-
@Devin:我怎样才能使缓存过期?
-
Rails 应自动为资产附加时间戳,请参阅“自定义资产路径”标题下的 api.rubyonrails.org/classes/ActionView/Helpers/…
-
@Devin M 虽然 Rails 确实为 css 和图像链接提供了时间戳,但据我所知,这不适用于 css
background-image链接。
标签: ruby-on-rails css ruby-on-rails-3 browser-cache image-caching