Ruby on rails 3.1 如何在rails 3.1中使用指南针
我搜索了又搜索,我所能看到的是,将compass与rails 3.1结合使用只需编辑GEM文件,如下所示:Ruby on rails 3.1 如何在rails 3.1中使用指南针,ruby-on-rails-3.1,compass-sass,Ruby On Rails 3.1,Compass Sass,我搜索了又搜索,我所能看到的是,将compass与rails 3.1结合使用只需编辑GEM文件,如下所示: gem 'compass', :git => 'https://github.com/chriseppstein/compass.git', :branch => 'rails31' gem 'sass-rails', "~> 3.1.0.rc" 是的,我明白,但是接下来呢?我看到的每一篇教程都是这么说的,用那个叉子。但是我在使用compass和rails 3.1时仍然
gem 'compass', :git => 'https://github.com/chriseppstein/compass.git', :branch => 'rails31'
gem 'sass-rails', "~> 3.1.0.rc"
是的,我明白,但是接下来呢?我看到的每一篇教程都是这么说的,用那个叉子。但是我在使用compass和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。另外,我正在使用compass-960插件,那么我在哪里需要它呢?我尝试使用require 960和require html5样板添加compass.rb,但仍然不断出现错误:
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编译
没有要编译的东西。如果您正试图启动一个新项目,那么您已经省去了directory参数。
运行“compass-h”以获得帮助
正如我所说的,我已经编辑了compass.rb,所以我仍然不知道该如何处理这个问题。有什么帮助吗?您可以下载compass目录,将其转储到
供应商/资产/样式表
中,这样您的目录结构就是供应商/资产/样式表/指南针
,然后从主应用程序样式表中包括所需的指南针混合组件@包括指南针/重置代码>更新:似乎有更好的方法
资料来源:
更新2(2011年12月2日):Compass的创建者Chris Eppstein发布了如何将Compass与Rails 3.1集成的Github要点:
我现在更喜欢这种方法,因为我注意到在使用livereload时,编译速度有了很大的提高
我的方法:
(我现在认为它是被贬低的,但在某些情况下它可能有用,所以这里是供参考的)< /P>
首先,在文件中添加:
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语法版本“//”替换“/**/”注释)
现在,要测试compass和blueprint的混合是否有效,请在同一文件application.css.sass中添加一些代码:
@import compass
@import _blueprint
body
background: black
+linear-gradient(color-stops(white, black))
+column(5)
使用运行rails服务器
bundle exec rails server
在浏览器中加载应用程序,然后访问
如果一切顺利,您应该可以看到编译后的代码
来源:
compass用户组的Peter Gumeson为我指出了一个解决方案:
以下是他的信息:
嗨,刚。这个github问题可能会有所帮助。
我现在几乎把一切都搞得焦头烂额。所以我的档案
看起来像这样:
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'
我现在正在研究rails发电机,所以不应该太晚
很远。但这至少能让你走
彼得
*choonkeat所说的更改分支其他答案中的解决方案在Compass的最新版本v0.12中不受欢迎,该版本需要适配器才能与rails应用程序一起使用。Compass作者Chris Eppstein在github上发布了安装说明:
此适配器支持rails 2.3及更高版本不确定,但如果没有大量的黑客,我认为它在3.1上还不能工作。我今天成功升级了我的应用程序(它使用compass)-记录了它使用Rails 3.1 rc6从app/assets/stylesheets下的application.scss导入它不起作用支持我的答案使用compass gem版本“0.12.alpha.0”而不是分支“rails31”更新了我的答案:有一种新的更好的方法,查看提供的链接。compass的chris eppstein现在发布了如何将compass集成到3.1的另一个更好的方法:希望您不介意我更新您的答案:)我将链接添加到chris的gistbranchrails31
中。尝试gem“compass”,:git=>“git://github.com/chriseppstein/compass.git“,:tag=>0.12.alpha.0”
。现在。:tag=>“0.12.alpha.0”
对我来说不起作用,但是:tag=>“v0.12.alpha.0”
滴滴测试了这个问题,但它似乎是rails 3.1.0的bug,是的,斯科特在我创建问题时确认了这一点。它适用于rails 3.1.3,而不是3.1.0。我认为链轮存在一些遗留问题