【问题标题】:Why digest are used in Rails 4 for static content instead of ETag为什么在 Rails 4 中将摘要用于静态内容而不是 ETag
【发布时间】:2014-12-04 00:29:50
【问题描述】:

我认为 HTTP 的 ETag 正是使过时缓存内容失效的机制。并且为了同样的原因使用摘要。为什么它们更好,为什么 etags 还不够?

【问题讨论】:

    标签: ruby-on-rails http asset-pipeline etag


    【解决方案1】:

    因为 ETags 仍然需要客户端访问服务器以查看客户端的缓存副本是否仍然新鲜。 Rails 在资产上放置了一个远期过期标头,这意味着客户端永远不会再次访问服务器以获取资产,它已经缓存了。然后摘要成为服务器使客户端获得资产的新版本的手段。我认为 Rails 过去使用时间戳而不是摘要,但摘要还有一个额外的小好处,即如果您将资产恢复到以前的状态,它的摘要将是相同的,并且客户端可能仍会将其缓存。

    【讨论】:

    • 摘要还有一个好处(超过时间戳),即新部署最终可能会出现在资产文件中,当它们实际上都具有相同的内容时,它们都具有不同的时间戳。在这种情况下,时间戳方法会导致重新下载(相同的)断言,但摘要方法确保缓存仍然有效
    猜你喜欢
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    相关资源
    最近更新 更多