如何使用罗盘与轨道3.1

时间:2011-06-25 19:47:18

标签: ruby-on-rails-3.1 compass-sass

我已经搜索过并且搜索了所有我能看到的是使用带有rails的指南针3.1就是这样编辑Gemfile:

gem 'compass', :git => 'https://github.com/chriseppstein/compass.git', :branch => 'rails31'
gem 'sass-rails', "~> 3.1.0.rc"

是的我明白了,但下一步是什么?我看到的每个教程都说,使用那个特定的分叉。但是我仍然无法使用带有rails 3.1的罗盘。

我这样做了:

$ compass init rails . --syntax sass
  directory ./app/stylesheets/ 
  create ./config/compass.rb 
  create ./app/stylesheets/screen.sass 
  create ./app/stylesheets/print.sass 
  create ./app/stylesheets/ie.sass

由于3.1现在正在使用资产,我只是将所有这些文件转移到3.1。另外,我使用的是指南针-960插件,我在哪里需要它?我尝试添加一个需要960的compass.rb,并且需要html5样板,我仍然会遇到错误:

Error compiling asset application.css:
NoMethodError: undefined method `Error' for Compass:Module
  (in /Users/eumir/rails_apps/kiseki/app/assets/stylesheets/screen.sass)

NoMethodError (undefined method `Error' for Compass:Module
(in /Users/eumir/rails_apps/kiseki/app/assets/stylesheets/screen.sass)):

我尝试做罗盘编译,它给了我这个:

$ compass编译      无需编译。如果您正在尝试启动一个新项目,那么您已经离开了目录参数。      运行“compass -h”获取帮助。

正如我所说,我已经编辑了我的指南针。所以我仍然难以理解如何解决这个问题。有什么帮助吗?

4 个答案:

答案 0 :(得分:33)

更新:好像有更好的方法!
资料来源:http://spin.atomicobject.com/2011/07/12/sass-sprockets-compass-with-rails-3-1/

更新2 (2011年12月2日):Compass的创建者Chris Eppstein发布了关于如何将Compass与Rails 3.1集成的Github要点:https://gist.github.com/1184843

我现在更喜欢这种方法,因为我注意到在使用livereload时编译时速度有了很大提升。


我的方法:
(我现在认为它已被弃用,但在某些情况下可能会有用,所以这里仅供参考:)

首先,在你的Gemfile中,添加:

gem "compass", "~> 0.12.alpha.0"

不要忘记执行

bundle update

然后,在config / application.rb中:

config.generators.stylesheet_engine = :sass

将application.css.scss重命名为application.css.sass,或者创建它,并将其内容替换为:

@import compass
@import _blueprint

(如果你想在样式表的开头保留新的Rails 3.1清单代码,你必须在开头的时候用sass-syntax version'//'替换'/ * * /'注释。每一行)

现在,要测试罗盘和蓝图mixin是否有效,请将一些代码添加到同一文件application.css.sass:

@import compass
@import _blueprint
body
  background: black
  +linear-gradient(color-stops(white, black))
  +column(5)

使用

运行rails服务器
bundle exec rails server

在浏览器中加载您的应用,然后访问http://localhost:3000/assets/application.css

如果一切顺利,你应该看到编译好的代码。

<强>来源:

http://blog.pixarea.com/2011/07/using-compass-blueprint-semantic-and-sass-syntax-in-rails-3-1/

答案 1 :(得分:6)

其他答案中的解决方案已弃用最新版本的Compass,v0.12,这需要适配器才能使用rails应用程序。 Compass的作者Chris Eppstein已经在github上发布了安装说明:
https://github.com/compass/compass-rails

此适配器支持2.3及更高版本的导轨

答案 2 :(得分:1)

来自罗盘用户组的Peter Gumeson指出我要解决这个问题:

https://groups.google.com/forum/#!msg/compass-users/mU5HBt8TCIg/2Rt7iSESTSAJ

这是他的信息:

  你好帮派。这个github问题可能有所帮助。   https://github.com/sporkd/compass-html5-boilerplate/issues/19

     

我现在正在运行一切。所以我的gemfile   看起来像这样:

gem 'rails',     :git => 'git://github.com/rails/rails.git'
gem 'sass-rails', '~> 3.1.0.rc2'
gem 'haml', :git => 'git://github.com/nex3/haml.git'
gem 'haml-rails'
gem "compass", :git => "git://github.com/chriseppstein/compass.git", :tag => "0.12.alpha.0"
gem 'compass-html5', :git => 'git://github.com/sporkd/compass-html5.git'
     

我现在正在研究轨道发电机,所以它不应该这样   遥远。但这至少应该让你前进。

     

彼得

*改变分支,如choonkeat所说

答案 3 :(得分:0)

您可以下载指南针目录,将其转储到vendor/assets/stylesheets,这样您的目录结构为vendor/assets/stylesheets/compass然后从您的主应用程序样式表中包含指南针mixins ass required @include compass/reset;