【发布时间】:2011-11-12 17:20:51
【问题描述】:
一旦您使用资产管道设置了一个应用程序,它可能会为您生成一个带有如下 URL 的图像(签名被截断):
http://mysite.com/assets/logo-1b2b3c.png
然后,当您更改资产或更新全局资产版本时,您最终会得到这样的结果:
http://mysite.com/assets/logo-2b3c1a.png
现在,有些人仍会向旧资产发送请求。在我理解的默认 Rails 3.1 部署下,这些只是 404。这似乎不太友好。对新资产执行 301 或直接交付新资产会更好。
是否有一些内置方法可以做到这一点,还是我必须实现自己的资产缺失功能?
【问题讨论】:
-
没有人应该发送对旧资产的请求。如果他们正在查看缓存的 HTML,他们应该使用缓存的资产。
-
我同意@meagar。我很好奇会发生这种情况的情况。你能说明这是怎么发生的吗?
-
@Andrew Vit:虽然我同意这不应该发生,但它可以。当这种情况发生时,我遇到的情况是,如果有人对包含哈希的图像进行热链接,需要支持的热链接。当然,最好是预期人们会进行热链接并提供未版本化的资产路径,但是当时我们无法返回通知 500 个外部站点来更改其链接,因此在生产世界的现实中,我们不得不做这样的事情。
-
@steven 人们不应该热链接您的资源。这就是不是你的问题的定义。
标签: ruby-on-rails asset-pipeline