【发布时间】:2014-07-27 00:34:00
【问题描述】:
这几天我一直在为 Compass Sprites 寻找路径。
我的网站具有以下结构:
+ project
- config.rb
+ application
+ scss
- _base.scss
- main.scss
- ...
+ public (webroot)
+ js
+ css
- main.css
+ images
+ sprites
- boxarrow.png
- boxcheck.png
- ...
我的 config.rb 最初看起来像:
http_path = "/"
css_dir = "public/css"
sass_dir = "application/scss"
images_dir = "public/images"
javascripts_dir = "public/js"
在我的 scss 文件中,我使用以下内容来扫描我的精灵:
$sprites: sprite-map("sprites/*.png");
并将它们与我编写的 mixin 一起使用:
@mixin scaled-sprite-background($name, $scale, $spritemap) {
background: $spritemap;
$spritePath: sprite-path($spritemap);
@include background-size(image-width($spritePath) * $scale);
$position: sprite-position($spritemap, $name);
background-position: (nth($position, 1) * $scale) (nth($position, 2) * $scale);
height: image-height(sprite-file($spritemap, $name)) * $scale;
width: image-width(sprite-file($spritemap, $name)) * $scale;
}
问题是我的精灵路径出来了ala public/images/sprites-s500a0fe4b1.png,而他们不应该有公共/。
我删除了public/,所以我只有images_dir = "images",但现在罗盘无法找到我的图像。
我设置了http_path = "public" 并得到了double public public/public/images/sprites-s500a0fe4b1.png
我使用 images_path 尝试了更多配置,但无济于事。
我目前的工作技巧如下:
http_path = "/"
css_dir = "public/css"
sass_dir = "application/scss"
images_dir = "images"
images_path = "public/images"
javascripts_dir = "public/js"
on_sprite_saved do |filename|
FileUtils.mv(filename, images_path + "/" + File.basename( filename )) if File.exists?(filename)
end
它不漂亮,但它有效。当然需要有更好的方法!
任何帮助将不胜感激。
【问题讨论】:
-
你试过
images_dir = "/images"或images_dir = "../images"吗? -
@morkro 是的,两者都给我“在加载路径中找不到与“sprites/*.png”匹配的文件。您当前的加载路径是:/Users/jdonat/Sites/capsis/images”
标签: sass compass-sass