Css Sass/指南针和精灵:如何为特定页面的精灵选择随机图像?
我正在使用sass/compass,希望利用compass的精灵功能。我参与的项目是一个长期存在的应用程序,其中图像都分散在images文件夹中 例如,假设我有两个页面,page-a.html和page-b.html,每个页面上都有以下图像:Css Sass/指南针和精灵:如何为特定页面的精灵选择随机图像?,css,ruby-on-rails-3,sass,css-sprites,compass-sass,Css,Ruby On Rails 3,Sass,Css Sprites,Compass Sass,我正在使用sass/compass,希望利用compass的精灵功能。我参与的项目是一个长期存在的应用程序,其中图像都分散在images文件夹中 例如,假设我有两个页面,page-a.html和page-b.html,每个页面上都有以下图像: page-a.html: /images/foo/bar.png /images/elvis-presley.png page-b.html /images/foo/bar.png /images/people/david-hasselh
page-a.html:
/images/foo/bar.png
/images/elvis-presley.png
page-b.html
/images/foo/bar.png
/images/people/david-hasselhoff.png
建议所有图像必须位于同一目录中。鉴于上述场景,这是不可能的,因为/images/foo/bar.png用于两个页面(但不一定是站点的每个页面)。因此,在这种情况下,我必须:
我需要知道的是compass是否可以从同一文件夹中的多个图像创建精灵而不是。如果希望每次重新加载页面时图像都发生更改,那么,对于纯css来说,这是不可能的,因为sass是编译的,而不是对每个请求进行评估。您所要求的是不可能的
你打算用css精灵替换你提到的图像吗?如果是这样,每个页面都会引用编译后的sprite图像。单个图像文件将不再用于任何页面,因此它们在文件系统中的位置无关紧要 你可以试试
@import "images/**/*.png";
@each $file in bar, elvis-presley, david-hasselhoff {
.sprite.#{$file} {
@include flags-sprite($file);
}
}
谢谢你的评论,但这并不是我想要的。我重新编写了我的问题,希望更清楚。你打算用精灵替换网站上的每个图像吗?我希望特定于页面的精灵进入特定于页面的css文件,所以是的,我将用一个只用于page-a.html的精灵替换bar.png和elvis-presley.png。与此完全不同,我想用一个特定于page-b.html的精灵替换bar.png和david-hasselhoff.png。通过计划用精灵替换图像,它们将如何在每个页面上被引用?此外,单个图像文件将不再在任何一个页面上使用,而是需要它们来编译新的精灵。问题在于,要为两个页面编译精灵,我需要相同图像(bar.png)的两个副本,或者能够从单独目录中的图像编译精灵。