Rails资产管道,域分片和缓存

时间:2012-09-04 16:43:29

标签: ruby-on-rails caching asset-pipeline

我有一个问题,我似乎无法找到明确的答案,我希望有人可以为我清理它。

使用Rails 3.2资产管道,并通过将config.action_controller.asset_host设置为"http://foo%d.example.com"来启用域分片,Rails将始终对HTML文件中包含的每个资产使用相同的主机,或者只选择随机一个?

我担心的是,如果随机选择资产主机,如果用户以前从其他资产主机下载资产,则必须重新下载他们在浏览器缓存中已有的资产。

任何人都可以对此有所了解吗?或者至少清除我对这个主题的任何困惑。谢谢!

1 个答案:

答案 0 :(得分:2)

line

(host =~ /%d/) ? host % (Zlib.crc32(source) % 4) : host

其中source是资产的完整路径(例如'/assets/application-123456789012345678.css')

因此,任何单个文件都将始终路由到同一主机,因为该数字基于路径的校验和。