Rails 回形针图像大小取决于设备大小

Rails paperclip image size depending on device size

我在 rails 应用程序中使用回形针上传图片。 有调整图像大小的选项。

has_attached_file :photo, styles: {large: '1000x1000>', medium: '500x500>'}

是否可以为 iPad 或全高清屏幕等大型设备拍摄大图像,为移动设备拍摄中尺寸图像?

我正在实现这样的图像:

<div class="teaser" style="background: url(<%=@object.photo_url %>)"></div>

您有两种选择:

  1. 保存图像时创建多个尺寸并在 HTML
  2. 中引用它们
  3. 以最大尺寸保存并根据需要调整尺寸

对于选项1,您可以使用回形针设置中的dynamic styles option

话虽如此,我推荐选项 2。我们在我现在的雇主那里使用 Imgix,这对我们来说是一个非常好的选择。您将最大的图像上传到 S3,然后使用 GET 参数控制其大小,例如httsp://yours3bucket.imgix.com/yourfolder/yourimage.png?width=205&height=354&hue=158 这具有让您的图像面向未来的巨大优势,因为如果您改变了对所需分辨率的想法,则无需重新生成不同尺寸的图像 - 您只需更改 [=28= 中的参数] 并且 Imgix 将其整理出来。您还可以应用大量动态效果,例如裁剪图像、改变色彩平衡等。唯一的缺点是它要花钱,但根据您的用例,这可能非常划算。

无论哪种方式,您都需要告诉浏览器使用正确尺寸的图像。我建议同时使用 srcset to do this, although IE still doesn't support it. This polyfill 是一个不错的选择。