Rails 3 - 更好地创建更多缩略图或只创建一个缩略图并通过CSS调整大小?

时间:2012-02-19 09:53:33

标签: css ruby-on-rails-3 image paperclip thumbnails

我正在构建小商店应用程序,现在考虑更快的方式,如何上传图像 - 我需要4种尺寸的图像。第一个想法 - 从上传创建4个缩略图和所有 - 这可能是最简单的方法,但我担心的是 - 通过上传创建4种尺寸可能需要花费很多时间......这就是我所不知道的#&#39 39; t like,我想避免它。

第二个想法是上传图片 - 例如尺寸为300x300,片刻之后,我需要在商店中显示此图片的拇指,所以在HTML和CSS中我只设置值:style = > '宽度:165px;'

你怎么看?什么是最好的变种?

2 个答案:

答案 0 :(得分:0)

我不认为这个问题与rails相关,但是更为一般。

通常,您确实希望创建所有尺寸的图像。在上传时创建四种尺寸通常不会花费那么多时间(我指的是上传图像一次然后在服务器端基于此创建所需图像) - 至少如果你将它与组合时间进行比较用户全部下载最大尺寸的图像,然后在他们需要的只是一个小缩略图时动态调整大小。通常,上传图像不会经常发生。生成其他图像也可能会延迟到每晚运行的预定作业,因此不会影响管理员端的用户体验。

也就是说,如果你的用户每次都必须下载最大的图像,那么无论如何它都会在缓存中,如果你用css在任何需要的地方调整它的尺寸,那么就不会产生额外的开销。在那种情况下,我认为只使用最大尺寸就可以了。通常,您可以避免在大多数用例中使用最大尺寸的图像。

答案 1 :(得分:0)

使用carrierwave gem管理您的上传内容。使用多个“版本”配置gem。

正如eis建议的那样,处理图像并不是性能瓶颈,但如果你真的想要花哨使用delayed_job gem来异步处理处理。

配置carrierwave时,您还需要设置实际的处理器。我使用完整的rmagick,但你可以使用minimagick,它更容易设置。这一切都在carrierwave自述文件中有详细说明。对于rmagick / imagemagick,here's a thread触及了它。

另外,正如eis建议的那样,图像通常可以被浏览器可靠地缓存,而且现在浏览器在动态调整图像时做得不错,但通常情况下,处理器越好,结果越好,这就是为什么我使用rmagick。

最后一点,除非您可以指定用户选择上传的内容,否则您很可能需要至少处理一张图片。例如,有人可能会以很小的压缩率上传巨大的8000 X 6000像素图像。由于控制较少,您不希望提供该图像。一旦你遇到了设置图像处理的麻烦,添加一些输出尺寸以适应各种显示上下文是一件微不足道的事情。

相关问题