style.css.erb预编译资产为nil提供了未定义的方法`[]':NilClass错误

时间:2013-04-19 11:23:53

标签: ruby-on-rails-3.2 asset-pipeline

我在rails应用程序

的stylesheets文件夹中为字体创建了一个文件
@font-face {
 font-family: 'MuseoSans500';
 src: url("<%= asset_path('museosans_500-webfont.eot?')%>") format('embedded-opentype');
 font-weight: normal;
 font-style: normal;
 }

@font-face {
 font-family: 'MuseoSans500';
 src: url("<%= asset_path('museosans_500-webfont.woff')%>") format('woff'),
   url("<%= asset_path('museosans_500-webfont.ttf')%>") format('truetype'),
   url("<%= asset_path('museosans_500-webfont.svg#MuseoSans500')%>") format('svg');
font-weight: normal;
font-style: normal;
}

现在当我预编译资产时..它在style.css.erb页面上给出了错误。 我一直跟踪路径的链轮,我得到了这个文件。 错误是

paths  subpath /home/new_app/app/assets/stylesheets/app-theme/themes/default/style.css.erb
rake aborted!
undefined method `[]' for nil:NilClass

(在/home/hbror/applications/survey/app/assets/stylesheets/application.css中)

1 个答案:

答案 0 :(得分:1)

您应该将字体放在新的资产目录中,例如app/assets/fonts,并将其放在资产目录中,方法是将其放在application.rb中:

# Add the fonts path
config.assets.paths << Rails.root.join('app', 'assets', 'fonts')

# Precompile additional assets
config.assets.precompile += %w( .svg .eot .woff .ttf )

然后它应该可以正常工作。