指南针导入精灵的问题

时间:2012-02-02 16:53:26

标签: css ruby sass compass-sass

我对目录结构的工作原理感到困惑。例如,我的就像:

--compass
    --css
    --images
        --frontSprite
            Images
    -sass
        --_base.scss
        --advertiser.scss
    config.rb

当我尝试导入我正在使用的图像时:

@import "frontSprite/*.png";

在我的_base.scss中,但这会产生一个错误,我觉得这与错误地找不到目录有关。有什么建议吗?

3 个答案:

答案 0 :(得分:2)

嗯,正确的目录结构取决于你在config.rb中设置的内容。 应该是这样的:

images_dir = "images"
http_images_path = "/this/path/is/rendered/in/the/css/file"

images_dir告诉指南针图像所在的位置(相对于config.rb),http_images_path定义CSS输出中实际呈现的内容。

从指南针目录中尝试命令compass sprite "images/frontSprite/*.png"(这将生成sprite css-output)以调试路径。

旁注:当您使用.pngs时,您应该考虑安装油性png,这将显着加快精灵生成过程。使用gem install oily_png非常简单,Compass会自动检测到它已安装。

答案 1 :(得分:0)

如果您正在使用Symfony& assetic

转到config.yml&在参数中添加:
assetic.filter.compass.images_dir: %kernel.root_dir%/../src/App/PlayerBundle/Resources/public/assets/img/

答案 2 :(得分:0)

我在Windows中遇到了罗盘问题,并通过编辑此文件解决了这个问题:

C:\Ruby193\lib\ruby\gems\1.9.1\gems\compass-0.12.2\lib\compass\sprite_importer.rb

更改第19行:

-      Dir.glob(File.join(path, "**", glob))
+      Sass::Util.glob(File.join(path, "**", glob))

第78行:

-        files = Dir[File.join(folder, uri)].sort
+        files = Sass::Util.glob(File.join(folder, uri)).sort

保存并且有效!

来源: https://github.com/chriseppstein/compass/commit/58babac01b56eddf63bac737f7f781d98f00f6b9 这是一个旧的补丁,所以我想知道为什么它不是最新版本的指南针?