首先,这是我第一次在StackOverflow上发布问题。我是个粉丝。无论如何:
我正在编写Michael Hartl的Rails教程,在编辑custom.scss.css文件后,我突然遇到了这个错误:
SASS语法错误
未定义的变量:“$ grey”。 (在/home/shady/workspace/ruby/sample_app/app/assets/stylesheets/custom.css.scss:4)
这不是$ grey的问题;这是拼写和大写灰色SASS变量的正确方法(我检查过,它适用于另一个rails项目)。我简化了custom.scss.css文件来查明这个错误,所以它包含的是:
@import "bootstrap";
h1 {
color: $gray;
}
在我的示例应用程序(rails教程应用程序)中,我仍然遇到此错误,但是当我在我创建的另一个rails项目中使用这个完全相同的代码时(为了练习我自己在Rails教程中学到的东西,所以它几乎模仿了Sample App),使用完全相同的gemset和Gemfile,这非常好用。这是我的Gemfile:
source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=SecondTry
gem 'rails', '4.0.2'
gem 'bcrypt-ruby', '~> 3.1.2'
group :development, :test do
gem 'sqlite3', '1.3.8'
gem 'rspec-rails', '2.13.1'
gem 'guard-rspec', '2.5.0'
gem 'spork-rails', '4.0.0'
gem 'bootstrap-sass', '2.3.2.0'
end
group :test do
gem 'selenium-webdriver', '2.35.1'
gem 'capybara', '2.1.0'
gem 'libnotify', '0.8.0'
gem 'factory_girl_rails', '4.2.1'
end
gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '>=4.0.0'
gem 'jquery-rails', '>=3.0.4'
gem 'turbolinks', '2.2.0'
gem 'jbuilder', '1.0.2'
group :doc do
gem 'sdoc', '0.3.20', require: false
end
group :production do
gem 'pg', '0.15.1'
gem 'rails_12factor', '0.0.2'
end
上次编辑custom.scss.css时,这工作得非常好,从那以后我没有做过任何实质性的事情。我没有(至少有目的地)编辑我认为会导致这种情况的任何文件。我已经尝试卸载并重新安装bootstrap-sass,但它没有用。我相信这是SASS的问题,但由于我是铁杆新手,我不知道如何解决它。有什么建议吗?
答案 0 :(得分:2)
FIXED IT HAHAHAHAAAAAAAA
这是因为,由于某些愚蠢的原因,我在/ vendor目录中添加了一个assets文件夹(可能正在测试其他内容),并且看起来rails检查此目录是否有任何外部样式表,如果它发现它存在的话从那里加载而不是gem(?),这就是Rails资产管道甚至没有处理bootstrap的原因。除了样式表和js文件夹外,assets文件夹为空。删除资产文件夹后,应用程序再次开始工作。
答案 1 :(得分:0)
您需要在某处定义$ gray var。在我的rails项目中,我通常设置一个_colors.scss部分,我定义了所有我的var然后我在bootsrap之前导入它们,所以我可以覆盖它们,如果我需要的话。
$grey:#EEEEEE;
我没有在bootstrap var list(http://getbootstrap.com/customize/#less-variables)中看到任何$ gray var。
另一个想法,我不知道你如何在布局中调用样式表。但也许如果你只调用application.scss,可能会缺少* = require,其中定义了$ grey。