Eri*_*ght 24 ruby-on-rails sass blueprint-css ruby-on-rails-3 compass-sass
我有一个Rails 3应用程序,我成功运行compass init rails ./ --using blueprint.我可以@import从/ stylesheets目录中找到文件,但是当我尝试时出现错误@import compass.
现在该应用程序有两个简单的sass文件:
common.scss
$body-background: blue;
Run Code Online (Sandbox Code Playgroud)
main.scss
@import "common";
//@import "compass";
body {
background: $body-background;
}
Run Code Online (Sandbox Code Playgroud)
随着这@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: }
Run Code Online (Sandbox Code Playgroud)
也许我必须明确地告诉Sass在哪里找到Compass宝石,所以我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"
Run Code Online (Sandbox Code Playgroud)
我一直在谷歌搜索两天,无法确定为什么我的基本@import陈述有这个问题.如何告诉Sass在何处找到Compass和Blueprint库?
Jon*_*man 21
我收到了这个错误.
我在application.rb中改变了这一行:
Bundler.require(:default, Rails.env) if defined?(Bundler)
Run Code Online (Sandbox Code Playgroud)
至:
Bundler.require(*Rails.groups(:assets => %w(development test))) if defined?(Bundler)
Run Code Online (Sandbox Code Playgroud)
另外,确保文件名为something.css.sass NOT something.sass
另外一件事,我的配置目录中有一个旧的compass.rb文件,这在Rails 3.2中是不需要的.删除它也为我解决了这个问题.
我敲了敲头后修好了这个错误
我在我的application.rb中评论了这一行:
Bundler.require(*Rails.groups(:assets => %w(development test))) if defined?(Bundler)
Run Code Online (Sandbox Code Playgroud)
并且没有注释:
Bundler.require(:default, :assets, Rails.env) if defined?(Bundler)
Run Code Online (Sandbox Code Playgroud)
我正在使用Rails 3.2.11
好吧,在令人惊叹的克里斯·爱普斯坦(Chris Eppstein)的帮助下,我找到了有问题的台词。在config/environments.rb我有这一行:
Sass::Plugin.options[:template_location] = {
"#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets"
}
Run Code Online (Sandbox Code Playgroud)
对于当前版本的 Rails(我有 3.0.7)和 Compass(0.11.1),这条线是不必要的。我在遵循教程后添加了它。如果 sass 找不到指南针,可能是因为这条线弄乱了你的Sass::Plugin.options[:template_location].
| 归档时间: |
|
| 查看次数: |
34467 次 |
| 最近记录: |