在资产管道的Ruby on Rails指南中,它说
公开的任何资产都将作为静态文件提供 应用程序或Web服务器。您应该将app / assets用于那些文件 必须经过一些预处理才能送达。
http://guides.rubyonrails.org/asset_pipeline.html
对我而言,这表示图像应保存在公共目录中,因为它们可以由我的Web服务器静态提供,无需预处理。
将图片放入assets/
是否有优势?
答案 0 :(得分:9)
资产预编译会将唯一的哈希值附加到图像文件名,这样,即使服务器上存在缓存或过期设置,用户也可以获取最新版本的文件名。当您想要在网站设计中更改图像时,这非常有用。
您不希望将/assets/images
用于不太可能发生变化的图像(例如用户上传)。
答案 1 :(得分:4)
因为它会损害资产管道的多功能性。
通过资产管道提供图像,如果更改资产管道(例如,将文件上传到S3),则必须通过其他任务同步图像。
可能还有其他更深层次的原因,但这会让我停下来。
编辑: 附注:在生产中归功于资产:预编译/ assets /将从公共服务中提供所有内容。