我一直在研究Compass,我看的越多,感觉就像编写CSS一样。作为测试用例,我想在我的一个CakePHP项目中使用它。不幸的是,我在初始配置方面遇到了一些麻烦。具体来说,将资源放在正确的位置并在编译的CSS中正确引用。
我正在:stand_alone
目录中创建一个/app
项目。嗯,这就是我想要做的事情。指南针似乎不喜欢那样。在创建项目时,我已经告诉它将css,images和js以及那些资源放在哪里,实际上将它放到正确的目录中。不幸的是,因为我没有在webroot中创建目录,所以在编译时资源被错误引用。
我正在使用此命令在CakePHP app/
目录中创建Compass项目:
$ compass -f blueprint --sass-dir sass --css-dir webroot/css/ --images-dir webroot/img/ --javascripts-dir webroot/js/ --output-style compact .
编译后的CSS希望将Blueprint的showgrid.png
图像引用为:
url('/webroot/img/grid.png?1264969358')
我认为这是一个非常可预测的结果,但我无法弄清楚如何让编译的CSS引用正确的/img/grid.png?whatever
路径。这甚至可能吗?我是否被迫直接在我的webroot中创建我的Compass项目?
感谢。
更新
我的config.rb
文件的内容:
# Require any additional compass plugins here.
project_type = :stand_alone
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "webroot/css"
sass_dir = "sass"
images_dir = "webroot/img"
http_images_path = "/img"
javascripts_dir = "webroot/js"
output_style = :compact
答案 0 :(得分:1)
Rails和其他框架在公共webroot之外的项目根目录中具有sass文件和配置。一个独立的项目也应该这样工作。
您在引用图片时是否使用image_url()
?
在compass.config
文件中,如果它与您的目录路径不同,您可以设置http_images_path
。有关详细信息,请参阅Wiki中的configuration page。
答案 1 :(得分:1)
运行Compass v0.10并使用以下配置:
# Require any additional compass plugins here.
# Set this to the root of your project when deployed:
http_path = "/"
sass_dir = "sass"
css_dir = "webroot/css"
images_dir = "webroot/images"
javascripts_dir = "webroot/js"
http_stylesheets_dir = "css"
http_javascripts_dir = 'js'
http_images_dir = 'images'
# To enable relative paths to assets via compass helper functions. Uncomment:
# relative_assets = true
提供了预期的结果。
Compass v0.10即将发布,您可以使用以下命令安装:
(sudo) gem install compass --pre
使用此配置创建项目:
config.rb
。compass install blueprint