【问题标题】:Rails 4 - is there a way to compress big images to make them load faster?Rails 4 - 有没有办法压缩大图像以使其加载更快?
【发布时间】:2016-01-02 14:24:04
【问题描述】:

在 Rails 4 应用程序中,我们的主页上有一些大图像(尺寸大约为 2400 像素宽度),它们的加载速度自然很慢。

有哪些选项可以加快加载速度?一种方法是降低它们的质量 => 它们的大小 => 更快的加载。

但是有一种 Rails 方法可以预缓存/压缩它们吗?

谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby image caching assets


    【解决方案1】:

    一个好的做法是在最终提交到您的代码库之前通过ImageOptim 运行所有图像。此工具进行无损压缩,这意味着像素不会改变,它仍然会减小文件大小。

    这不是“Rails”解决方案,但它是我所知道的在不牺牲任何质量的情况下减小文件大小(通常约为 10%)的最佳方法。

    【讨论】:

      【解决方案2】:

      没有“Rails 方式”可以做到这一点。无论您使用什么框架/语言,这都是一个问题,最好使用 content delivery network (aka CDN)

      解决

      【讨论】:

        【解决方案3】:

        为了让 googler 对此有所了解,以下是事实:

        • 没有核心 Rails 功能可以通过 assets 实现此目的
        • 种方法可以通过上传的图片来实现

        您遇到的问题是,由于资产是手动添加到 Rails 中的,因此您无法做到 pre-processing。如果您想针对不同的环境优化图像,则必须创建不同分辨率的图像,然后使用一些逻辑来定义它们:

        - assets 
        -- images
        --- backgrounds
        ---- original.jpg
        ---- medium.jpg
        ---- small.jpg
        

        然后您就可以使用辅助方法来定义您想要的图像:

        #app/helpers/application_helper.rb
        class ApplicationHelper
           def size size, image
              assets_path("#{File.basename(image)}/#{size.to_s}#{File.extname(image)}")
           end
        end
        

        参考:Get file name and extension in Ruby

        这将允许您调用:

        <%= image_tag size(:original, "backgrounds.jpg") %>
        

        如果您想使这个动态化,您必须使用 CSS 并设置背景图片,相应的 @media 查询会根据需要分配不同的图片。


        如果您谈论的是上传图像,您最好了解Paperclip 是如何做到的:

        ImageMagick 必须已安装且 Paperclip 必须有权访问它。为确保它确实如此,请在您的命令行上运行 which convert(ImageMagick 实用程序之一)。

        Paperclip 使用 ImageMagick 将图像分割成不同的大小。然后将它们存储在/public/system 文件夹中,这就是您在使用它时调用@model.image.url(:original) 的原因。

        我上面描述的基本上是 Paperclip 的工作原理,除了自动使用 ImageMagick 制作不同的图像尺寸

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-04-08
          • 2020-03-01
          • 1970-01-01
          • 2011-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多