@import不适用于我在 Rails 项目中的"application.css.scss"文件,只能作为"application.css"



所以我遇到了我的铁路项目的问题。在我的gemfile中,这是我的代码:

source 'https://rubygems.org'
gem 'rails', '4.0.3'
gem 'sqlite3'
gem 'thin'
gem 'uglifier', '>= 1.3.0'
group :assets do
gem 'sass-rails', '~> 4.0.1'
gem 'coffee-rails', '~> 4.0.0'
gem 'eco'
gem 'compass-rails'
gem 'bootstrap-sass'
end
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
group :doc do
   gem 'sdoc', require: false
end

这是我的应用程序。CSS.SCSS文件:

@import "bootstrap";

如果我将" group:Assets do"块出去,而只是尝试运行Rails,则遇到此错误:

/Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.rb:1:in `require': cannot load such file -- sass/script/node (LoadError)
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.rb:1:in `<top (required)>'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:2:in `require'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:2:in `block in <top (required)>'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `each'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `<top (required)>'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions.rb:9:in `require'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions.rb:9:in `<top (required)>'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass.rb:5:in `require'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass.rb:5:in `block in <top (required)>'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass.rb:4:in `each'
    from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass.rb:4:in `<top (required)>'
    from /Library/Ruby/Gems/2.0.0/gems/compass-rails-1.1.3/lib/compass-rails.rb:1:in `require'
    from /Library/Ruby/Gems/2.0.0/gems/compass-rails-1.1.3/lib/compass-rails.rb:1:in `<top (required)>'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:76:in `require'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:72:in `each'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:72:in `block in require'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:61:in `each'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:61:in `require'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler.rb:131:in `require'
    from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config/application.rb:12:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config/environment.rb:2:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config.ru:3:in `block in <main>'
    from /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
    from /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize'
    from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config.ru:1:in `new'
    from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config.ru:1:in `<main>'
    from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/rack/adapter/loader.rb:33:in `eval'
    from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/rack/adapter/loader.rb:33:in `load'
    from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/rack/adapter/loader.rb:42:in `for'
    from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/controllers/controller.rb:170:in `load_adapter'
    from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/controllers/controller.rb:74:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/runner.rb:199:in `run_command'
    from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/runner.rb:155:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/bin/thin:6:in `<top (required)>'
    from /usr/bin/thin:23:in `load'
    from /usr/bin/thin:23:in `<main>'

要摆脱这一点,我必须使用该组:资产确实阻止。但是,一旦我将Rails Server启动并运行,如果" @Import" bootstrap";'';'在application.css.scss中(因为文件附加了.scs),因此,当我尝试将Rails Project加载到浏览器中时,我会收到以下错误:

 Showing /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/views/layouts/application.html.erb where line #5 raised:
File to import not found or unreadable: bootstrap.
Load paths:
  /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/assets/images
  /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/assets/javascripts
  /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/assets/stylesheets
  /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/vendor/assets/javascripts
  /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/vendor/assets/stylesheets
  /Library/Ruby/Gems/2.0.0/gems/turbolinks-2.2.1/lib/assets/javascripts
  /Library/Ruby/Gems/2.0.0/gems/jquery-rails-3.1.0/vendor/assets/javascripts
  (in /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/assets/stylesheets/application.css.scss:13)

这是它突出显示的提取来源:

<html>
<head>
<title>OneKingdomDesign</title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>//this line is highlighted in the firefox browser
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>

谁能帮助我找到这个问题的来源?我相信这与Sass Gem有关,但我不确定。我正在使用Ruby 2.0.0p247如果很重要。

编辑:我已经缩小了它,它不是Sass,它是指南针。无论我尝试什么,指南针都试图与我争论。

我在我的rails4应用中使用以下内容。

gem 'sass-rails', '~> 4.0.0'
gem 'bootstrap-sass'

我遇到了类似的问题,我认为我已经到了

首先,我可以解释为什么仅当您不包括在Gemfile中的资产组时才会出现错误。Rails 4不会期望那里的资产组,也不包括宝石。这意味着,如果您的BaseCamp Gem包裹在组中:资产确实不会包含它,因此没有问题,但是当您尝试将它们包含在@Import中时,也没有训练营文件。

现在说明了预编译为何出错。我注意到这里:

http://rubygems.org/gems/sass-rails

sass-rails需要小于或等于2.11.0的链轮,即它与2.11.1版本不兼容,这是我在捆绑中得到的。我认为这些事情应该由邦德勒自动处理,所以我不知道那里发生了什么。我建议您在gemfile.lock中查看,并检查SASS(由Sass-Rails包含)和Bootstrap-Sass以及所有各种依赖项的版本,并确保RubyGems同意它们兼容。

希望有帮助。

我遇到了一个类似的问题,但是从SASS 4.0.1进行更新为我解决了。

gem 'sass-rails', '4.0.3'

最新更新