【问题标题】:What's the benefit of Rails asset pipeline for images用于图像的 Rails 资产管道有什么好处
【发布时间】:2012-09-17 15:42:55
【问题描述】:

资产管道由 3 个过程组成 - 预编译、连接和缩小。

我了解 JavaScript 和 CSS 可以从中受益。但是,我想不出图像有什么好处。

你能解释一下吗?

谢谢。

山姆

【问题讨论】:

    标签: ruby-on-rails asset-pipeline


    【解决方案1】:

    假设您对图像使用 Rails 助手(例如image_tag),版本控制/指纹识别是主要优势。

    指纹有助于破坏缓存(从 CDN 和浏览器的角度来看)。

    看到这个rails guide section

    【讨论】:

      【解决方案2】:

      通过 Rails 资产管道传递图像的一个好处是利用资产指纹,它允许您设置远期缓存标头并在资产更改时破坏缓存。

      当文件名是唯一的并且基于其内容时,可以设置 HTTP 标头以鼓励在任何地方(无论是在 CDN、ISP、网络设备还是 Web 浏览器中)缓存来保留自己的内容副本。当内容更新时,指纹会发生变化。这将导致远程客户端请求内容的新副本。这通常称为缓存清除。 (来自Ruby on Rails Guides: Asset Pipeline

      【讨论】:

        【解决方案3】:

        在 Ruby CSS 文件中渲染 SVG 文件时

        Example
        .benefits__icon::after {
          content: "";
          background: url("learn-investment-investxd.svg") no-repeat;
          background-size: 52px;
        }
        

        使用 assets.rb 文件

          Rails.application.config.assets.precompile += %w( application.css dashboard.css dashboard.js)` with no other configuration.
        

        在上面的示例中,即使我将 image 文件 learn-investment-investxd.png 放在我的 assets/images 文件夹中,背景 url 也会恢复为 http://localhost:3001/learn-investment-investxd.png

        我的解决方法

        我在 url 中添加了assets

        .benefits__icon::after {
          content: "";
          background: url("assets/learn-investment-investxd.svg") no-repeat;
          background-size: 52px;
        }
        

        这行得通。 可以改进的

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-09-14
          • 1970-01-01
          • 1970-01-01
          • 2014-08-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多