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



我有一个 Rails 3 应用程序,我在其上成功运行了compass init rails ./ --using blueprint。 我可以从/stylesheets 目录中@import文件,但是当我尝试@import compass时出现错误。

现在该应用程序有两个简单的sass文件:

共同.scss

$body-background: blue;

主.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 在哪里可以找到指南针宝石,所以我在 config/compass.rb 中添加了一行add_import_path

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 在哪里可以找到指南针和蓝图库?

我收到此错误。

我在我的应用程序.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

还有一件事,我的配置目录中有一个旧的compass.rb文件,在Rails 3.2中不需要。删除这也为我解决了这个问题。

我通过切换到 Gemfile 中的 compass-rails gem 而不是 compass gem 来解决此问题(不要忘记重新启动服务器)。以防万一有人可能会遇到这里。

我在撞到它之后修复了这个错误

我在我的应用程序.rb中评论了这一行:

Bundler.require(*Rails.groups(:assets => %w(development test))) if defined?(Bundler)

和未评论:

Bundler.require(:default, :assets, Rails.env) if defined?(Bundler)    

我正在使用 Rails 3.2.11

好的,在了不起的克里斯·埃普斯坦的帮助下,我能够找到有问题的台词。 在config/environments.rb我有这样一句话:

Sass::Plugin.options[:template_location] = {
"#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets"
}

对于当前版本的Rails(我有3.0.7)和Compass(0.11.1),这一行不是必需的。 我在遵循教程后添加了它。 如果 sass 找不到指南针,可能是因为这条线弄乱了你的Sass::Plugin.options[:template_location]

我在 Rails 3.2.0 服务器上解决了这个问题,方法是从 Gemfile 中的:assets组中移出gem 'compass-rails', '~> 1.0.1',从 https://github.com/Compass/compass-rails/issues/19 中的提示中移出。

Sass 中的 @import 命令导入 .scss 或 .sass 文件,而不是.css文件。

看起来安装中遗漏了一些东西。(也许这条线compass install blueprint?我按照这里的步骤操作:http://compass-style.org/reference/blueprint/,无法重现问题。

我像这样修复了这个错误:

在应用程序中,我有

Bundler.require(:default, Rails.env) if defined?(Bundler)  

并更改为

Bundler.require(:default, :assets, Rails.env) if defined?(Bundler)

这是在将项目从 3.0.3 更新到 3.2.13 之后

相关内容

  • 没有找到相关文章

最新更新