NameError - 未初始化的常量 Sass::Engine:
NameError - uninitialized constant Sass::Engine:
我收到 NameError - 未初始化的常量 Sass::Engine:当我 运行 我的 sinatra 应用程序 sass gem 时。
使用 rbenv 安装了 ruby 版本 2.3.1,还安装了 sinatra,sass gem.
require 'sinatra'
require 'slim'
require 'sass' # required sass
require 'sinatra/reloader' if development?
get '/styles.css' do
scss :styles #does not generate styles.css, styles.scss file is in /views folder
end
get '/' do
slim :home
end
get '/about' do
@title = "All About This Website"
slim :about
end
get '/contact' do
slim :contact #, :layout => :special
end
not_found do
slim :not_found
end
get '/fake_error' do
status 500
"There's nothing wrong, really :P"
end
完全错误:
NameError - uninitialized constant Sass::Engine:
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt/sass.rb:13:in
prepare'
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt/template.rb:92:in
initialize'
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:862:in
new'
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:862:in
block in compile_template'
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt.rb:104:in
block in fetch'
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt.rb:103:in
fetch'
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt.rb:103:in
fetch'
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:841:in
compile_template'
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:822:in
render'
/home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:687:in
scss' main.rb:7:in `block in '
我做错了什么?
这里是 styles.scss:
$red: #903;
$black: #444;
$white: #fff;
$main-font: Helvetica, Arial, sans-serif;
body {
font-family: $main-font;
}
h1 {
color: $red;
font: 32px/1 $main-font;
}
header h1 {
font-size: 40px;
line-height: 80px;
background: transparent url(/images/logo.png) 0 0 no-repeat;
padding-left: 84px;
}
@mixin tabs ($background: blue, $color: yellow) {
ul {
list-style: none;
margin: 0;
padding: 0;
background: $background;
overflow: hidden;
}
li {
float: left;
}
a {
text-decoration: none;
display: block;
padding: 8px;
background: $background;
color: $color;
&:hover {
background: darken($background, 20%);
}
}
}
nav {
@@include tabs($background: $black, $color: $white);
font-weight: bold;
}
p {
font: 13px/1.4 $main-font;
}
确保您的 gemfile 中有:
gem 'sass'
gem 'sass-rails'
如果没有,请添加。不要忘记 运行 捆绑安装。
执行以下步骤:
将任何 gem 添加到您的 gem 文件 gem 'bootstrap-sass'
或 gem 'sass-rails'
然后使用 bundle
或 bundle install
命令安装包
如果您将资产管道与 sinatra 一起使用,那么这可能会有所帮助。对于那些使用 rails 的人,这可能会有所帮助。
在我的场景中,(运行ning rails 3.2.22.2) 我的应用程序在一台机器上运行。
在另一台机器上,我将 repo 和 运行 克隆到 uninitialized constant Sass::Engine
错误中。
移动 gem sass-rails 对我不起作用
我将 gem 'sass-rails'
移出了 group :assets do
块。
这对我不起作用。
我的解决方案:
rake assets:clean
删除所有已编译的资产。
下次您 运行 rake rails s
,您的资产将被重新编译。
如果没有,您可以 运行 rake assets:precompile
编译您的所有资产。
或者,如果您通过 capist运行o 进行部署,deploy.rb 将 运行“deploy:assets:precompile”并为您的 production/staging 机器编译资产。
错误似乎是因为 sass 没有在资产管道中正确编译。 (如果有人知道答案,很想知道为什么会出现这种情况)
我收到 NameError - 未初始化的常量 Sass::Engine:当我 运行 我的 sinatra 应用程序 sass gem 时。 使用 rbenv 安装了 ruby 版本 2.3.1,还安装了 sinatra,sass gem.
require 'sinatra'
require 'slim'
require 'sass' # required sass
require 'sinatra/reloader' if development?
get '/styles.css' do
scss :styles #does not generate styles.css, styles.scss file is in /views folder
end
get '/' do
slim :home
end
get '/about' do
@title = "All About This Website"
slim :about
end
get '/contact' do
slim :contact #, :layout => :special
end
not_found do
slim :not_found
end
get '/fake_error' do
status 500
"There's nothing wrong, really :P"
end
完全错误:
NameError - uninitialized constant Sass::Engine: /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt/sass.rb:13:in
prepare' /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt/template.rb:92:in
initialize' /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:862:innew' /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:862:in
block in compile_template' /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt.rb:104:inblock in fetch' /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt.rb:103:in
fetch' /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/tilt-2.0.5/lib/tilt.rb:103:infetch' /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:841:in
compile_template' /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:822:inrender' /home/tasqyn/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:687:in
scss' main.rb:7:in `block in '
我做错了什么?
这里是 styles.scss:
$red: #903;
$black: #444;
$white: #fff;
$main-font: Helvetica, Arial, sans-serif;
body {
font-family: $main-font;
}
h1 {
color: $red;
font: 32px/1 $main-font;
}
header h1 {
font-size: 40px;
line-height: 80px;
background: transparent url(/images/logo.png) 0 0 no-repeat;
padding-left: 84px;
}
@mixin tabs ($background: blue, $color: yellow) {
ul {
list-style: none;
margin: 0;
padding: 0;
background: $background;
overflow: hidden;
}
li {
float: left;
}
a {
text-decoration: none;
display: block;
padding: 8px;
background: $background;
color: $color;
&:hover {
background: darken($background, 20%);
}
}
}
nav {
@@include tabs($background: $black, $color: $white);
font-weight: bold;
}
p {
font: 13px/1.4 $main-font;
}
确保您的 gemfile 中有:
gem 'sass'
gem 'sass-rails'
如果没有,请添加。不要忘记 运行 捆绑安装。
执行以下步骤:
将任何 gem 添加到您的 gem 文件
gem 'bootstrap-sass'
或gem 'sass-rails'
然后使用
bundle
或bundle install
命令安装包
如果您将资产管道与 sinatra 一起使用,那么这可能会有所帮助。对于那些使用 rails 的人,这可能会有所帮助。
在我的场景中,(运行ning rails 3.2.22.2) 我的应用程序在一台机器上运行。
在另一台机器上,我将 repo 和 运行 克隆到 uninitialized constant Sass::Engine
错误中。
移动 gem sass-rails 对我不起作用
我将 gem 'sass-rails'
移出了 group :assets do
块。
这对我不起作用。
我的解决方案:
rake assets:clean
删除所有已编译的资产。
下次您 运行 rake rails s
,您的资产将被重新编译。
如果没有,您可以 运行 rake assets:precompile
编译您的所有资产。
或者,如果您通过 capist运行o 进行部署,deploy.rb 将 运行“deploy:assets:precompile”并为您的 production/staging 机器编译资产。
错误似乎是因为 sass 没有在资产管道中正确编译。 (如果有人知道答案,很想知道为什么会出现这种情况)