我们使用Compass转为Sprite图像(将许多图像合并为一个文件)。如果我为images/common/dir创建一个Sprite,Compass将创建一个名为common-sff832da50b.png的文件。每次重新生成Sprite时,Compass都会生成一个新的后缀。如果我将这些Sprite图像保留在app/assets/images中,我会在public/assets中看到common-sff832da50b.png和common-sff832da50b-4a575c6c5d24895370db5ee7e7648d3a.png。由于Compass管理这个文件,我没有理由让Asset Pipeline“管理”它。我可以通过配置Compass将这些精灵直接编译成公共/资产来绕过资产管道。这是否有缺点?我们是否应该将Sprited图像保留在资产管道之外?
也有理由认为,我应该确保编译成Sprites的“源”图像不应该存储在app/assets/images中,因为Asset Pipeline也会“管理”它们。请记住,这些“源”图像不被使用。该应用在开发和生产中使用Sprites。据我所知,Asset Pipeline没有理由将原始文件和原始摘要复制到公共/资产中。我们只在Sprite中使用它。这听起来合理吗?有缺点吗?
假设:Rails 3.2。*
谢谢!
更新:我们做了一个清单。 995个图像被“编译”成7个精灵。由于资产管道也指纹这些(和精灵文件),这意味着部署了2000个文件,只能被忽略。这包括复制的6.7G的1.8G。这是否会改变你的想法? –