我对目录结构的工作原理感到困惑。例如,我的就像:
--compass
--css
--images
--frontSprite
Images
-sass
--_base.scss
--advertiser.scss
config.rb
当我尝试导入我正在使用的图像时:
@import "frontSprite/*.png";
在我的_base.scss中,但这会产生一个错误,我觉得这与错误地找不到目录有关。有什么建议吗?
答案 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 这是一个旧的补丁,所以我想知道为什么它不是最新版本的指南针?