在CakePHP项目中配置Compass

时间:2010-01-31 21:13:52

标签: cakephp sass compass-sass

我一直在研究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

2 个答案:

答案 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

使用此配置创建项目:

  1. 创建项目目录
  2. 将配置保存到项目目录中的config.rb
  3. 从项目目录中运行命令:compass install blueprint