3

我们使用 Compass 来 Sprite 图像(将许多图像组合成一个文件)。如果我为 images/common/ 目录创建 Sprite,Compass 会创建一个名为 common-sff832da50b.png 的文件。Compass 每次重新生成 Sprite 时都会生成一个新的后缀。如果我将这些 Sprite 图像留在 app/assets/images 中,我将在 public/assets 中同时看到 common-sff832da50b.png 和 common-sff832da50b-4a575c6c5d24895370db5ee7e7648d3a.png。由于 Compass 管理这个文件,我认为没有理由让 Asset Pipeline 也“管理”它。我可以通过配置 Compass 将这些精灵直接编译到公共/资产中来绕过资产管道。这有缺点吗?

我也应该确保编译成 Sprite 的“源”图像不应该存储在 app/assets/images 中,因为 Asset Pipeline 也会“管理”它们。请记住,不使用这些“源”图像。该应用程序在开发和生产中使用 Sprites。据我所知,资产管道没有理由将原件和原件的“摘要”复制到公共/资产。我们只在 Sprite 中使用它。这听起来合理吗?有缺点吗?

假设:Rails 3.2.*

谢谢!

4

1 回答 1

2

您可以将原始图像移动到管道外的任何文件夹。或不。除了预编译所需的时间以及在您从不引用的公用文件夹中漂浮的文件之外,它并没有太大的区别。

您必须将图像粘贴在某个地方,并且从 Rails 固执己见的角度来看,这似乎阻力最小。

关于指纹,您也不需要指纹文件,因为指南针(如您所说)指的是它创建的文件。

但是,直接将其写入 +/public/assets+ 可能会出现问题,具体取决于您部署项目的方式。

如果你使用默认的 Capistrano 任务,assets 文件夹是从 +shared/assets+ 符号链接的,所以你需要在符号链接发生后编译 sprite。

于 2012-06-16T07:36:58.913 回答