我为什么要使用Asset Pipeline来提供图像?

时间:2012-06-08 16:44:28

标签: ruby-on-rails asset-pipeline

在资产管道的Ruby on Rails指南中,它说

  

公开的任何资产都将作为静态文件提供   应用程序或Web服务器。您应该将app / assets用于那些文件   必须经过一些预处理才能送达。

http://guides.rubyonrails.org/asset_pipeline.html

对我而言,这表示图像应保存在公共目录中,因为它们可以由我的Web服务器静态提供,无需预处理。

将图片放入assets/是否有优势?

2 个答案:

答案 0 :(得分:9)

资产预编译会将唯一的哈希值附加到图像文件名,这样,即使服务器上存在缓存或过期设置,用户也可以获取最新版本的文件名。当您想要在网站设计中更改图像时,这非常有用。

您不希望将/assets/images用于不太可能发生变化的图像(例如用户上传)。

答案 1 :(得分:4)

因为它会损害资产管道的多功能性。

通过资产管道提供图像,如果更改资产管道(例如,将文件上传到S3),则必须通过其他任务同步图像。

可能还有其他更深层次的原因,但这会让我停下来。

编辑:   附注:在生产中归功于资产:预编译/ assets /将从公共服务中提供所有内容。