Skip to main content
 首页 » 编程设计

ruby-on-rails之Rails 3 应用程序中的 Sass 导入错误之"File to import not found or unreadable: compass"

2024年11月24日16duanxz

我有一个成功运行的 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 正在工作。

如果我取消注释该行,并尝试导入 compassblueprint或其他任何东西,我收到这样的错误。
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 不需要它。删除它也为我解决了这个问题。