我有一个成功运行的 Rails 3 应用程序 compass init rails ./ --using blueprint
.我可以 @import
/stylesheets 目录中的文件,但是当我尝试 @import compass
时出现错误.
现在该应用程序有两个简单的 sass 文件:
common.scss
$body-background: blue;
main.scss
@import "common";
//@import "compass";
body {
background: $body-background;
}
与
@import "compass"
行注释掉了,这行得通——我有一个蓝色背景,所以我知道 Sass 正在工作。
如果我取消注释该行,并尝试导入
compass
或
blueprint
或其他任何东西,我收到这样的错误。
Syntax error: File to import not found or unreadable: compass.
Load paths:
/Users/eric/path/to/myrailsapp/app/stylesheets
on line 2 of /Users/eric/path/to/myrailsapp/app/stylesheets/main.scss
1: @import "common";
2: @import "compass";
3:
4: body {
5: background: $body-background;
6: }
我已经完成了,也许我必须明确告诉 Sass 在哪里可以找到 Compass gem,所以我添加了一个
add_import_path
行到 config/compass.rb:
require 'compass'
require 'html5-boilerplate'
project_type = :rails
project_path = RAILS_ROOT if defined?(RAILS_ROOT)
add_import_path "/Library/Ruby/Gems/1.8/gems/" # unfortunately this has no effect
http_path = "/"
css_dir = "public/stylesheets"
sass_dir = "app/stylesheets"
images_dir = "public/images"
javascripts_dir = "public/javascripts"
cache_dir = "tmp/sass-cache"
http_images_path = "/images"
http_stylesheets_path = "/stylesheets"
http_javascripts_path = "/javascripts"
我已经用谷歌搜索了两天,但无法确定为什么我的基本
@import
会出现这个问题。声明。我如何告诉 Sass 在哪里可以找到 compass 和蓝图库?
请您参考如下方法:
我收到这个错误。
我将 application.rb 中的这一行从:
Bundler.require(:default, Rails.env) if defined?(Bundler)
到:
Bundler.require(*Rails.groups(:assets => %w(development test))) if defined?(Bundler)
另外,请确保文件名 something.css.sass 不是 something.sass
还有一件事,我的 config 目录中有一个旧的 compass.rb 文件,Rails 3.2 不需要它。删除它也为我解决了这个问题。