【问题标题】:How to use compass with rails 3.1如何在rails 3.1中使用指南针
【发布时间】:2012-02-10 00:40:47
【问题描述】:

我已经搜索和搜索,我只能看到将指南针与 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。另外,我正在使用 compass-960 插件,那么我在哪里需要它?我尝试使用 require 960 和 require html5-boilerplate 添加一个 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 -h”获取帮助。

正如我所说,我已经编辑了我的 compass.rb,所以我仍然对如何处理这个问题感到困惑。有什么帮助吗?

【问题讨论】:

  • 不确定,但我认为如果没有大量的 hack,它还不能在 3.1 上运行
  • 我今天成功升级了我的应用程序(它使用指南针) - 记录了它here

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


【解决方案1】:

更新:似乎有更好的方法!
来源: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 Gist: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 清单代码,您必须将 '/* */' cmets 替换为 sass-syntax 版本的 '//'每行)

现在,为了测试 compass 和 blueprint mixins 是否工作,将一些代码添加到同一个文件 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/

【讨论】:

  • 更新了我的答案以使用 compass gem 版本 '0.12.alpha.0' 而不是分支 'rails31'
  • 更新了我的答案:有一种新的更好的方法,请参阅提供的链接。
  • 还有另一种更好的方法,来自 compass 的 chris eppstein 现在发布了如何将 compass 集成到 3.1:gist.github.com/1184843
  • 希望你不介意我更新你的答案 :) 我添加了 chris 要点的链接
【解决方案2】:

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

此适配器支持 rails 2.3 及更高版本

【讨论】:

  • 我对此进行了测试,但似乎对于 rails 3.1.0 来说是错误的
  • 是的,当我创建问题时,斯科特已确认。它适用于rails 3.1.3,而不是3.1.0。我认为链轮存在一些遗留问题
【解决方案3】:

来自 compass 用户组的 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'

我现在正在研究 Rails 生成器,所以不应该太 遥远。但这至少应该能让你继续前进。

彼得

*choonkeat 所说的更改了分支

【讨论】:

  • 分支rails31 消失了。试试gem "compass", :git => "git://github.com/chriseppstein/compass.git", :tag => "0.12.alpha.0"。暂时。
  • :tag => "0.12.alpha.0" 对我不起作用,但 :tag => "v0.12.alpha.0" 对我有用
【解决方案4】:

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

【讨论】:

  • 使用 Rails 3.1 rc6 从 app/assets/stylesheets 下的 application.scss 导入它不起作用
猜你喜欢
  • 2012-01-31
  • 2011-11-21
  • 2011-09-13
  • 2010-12-30
  • 2013-03-26
  • 1970-01-01
  • 2022-06-19
  • 2012-12-18
  • 1970-01-01
相关资源
最近更新 更多