Rails资产管道对图像有什么好处

时间:2012-09-17 15:42:56

标签: ruby-on-rails asset-pipeline

Asset Pipeline由3个进程组成 - 预编译,连接和缩小。

我知道JavaScript和CSS可以从中受益。但是,我想不出图像的任何好处。

你能解释一下吗?

感谢。

萨姆

3 个答案:

答案 0 :(得分:2)

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

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

请参阅此rails guide section

答案 1 :(得分:1)

通过Rails资产管道传递图像的一个好处是利用资产指纹识别,这可以让您设置远期缓存标头,并在资产发生变化时破坏缓存。

  

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

答案 2 :(得分:1)

在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)没有其他配置。 即使我将图片文件放在我的 assets / images 文件夹中,上面的示例也会将后台网址恢复为http://localhost:3001/learn-investment-investxd.png

我的解决方法

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

这样做。 它可以改进