ActionView :: Template :: Error(kids.css未预编译):

时间:2013-07-16 14:53:12

标签: ruby-on-rails asset-pipeline

我收到了这个奇怪的错误。我已将kids.css.less添加到我的application.css中。 如果我在config.assets.precompile数组中添加application(and/or environment file),我可以避免此错误,但这不是我想要使用的解决方案

这是我的app.css.less:

/*
 *= require_self
 *= require kids.css.less
 */


 @import "theme_venera.less";

.white-card {
  .kid-word {
    h5 { font-size: @fontSizeSmall;}
  }
}

我在kids.css中导致的结果不是预先编译的。

我缺少什么?

UPD:当我只部署在我的生产服务器上时,会发生此错误。在我的开发环境中,我拥有“实时”资产。我正在使用capistrano进行部署,我的脚本包含资产:预编译

2 个答案:

答案 0 :(得分:0)

在生产模式下运行rake assets:precompile以编译和压缩样式表,然后运行该应用程序。

答案 1 :(得分:0)

在开发中,您应该进行资产调试(禁用管道),以避免链接器连接并缩小您的资产:

config.assets.debug = true

如果不这样做,Rails希望您的资产得到编译:

rake assets:precompile

如果您不预先编译它们,如果您启用它,它会尝试根据请求编译它们:

config.assets.compile = true

否则,如果你没有禁用管道,不要自己编译它们,并且不允许Rails这样做,它会给你带来的错误。在生产中,通常的做法是预编译它们。实时编译会增加很大的开销,所以你不应该依赖它。但是,如果你在预编译后启用它就可以了:Rails将首先使用你的编译,如果它找不到它正在寻找的资产,那么它将把它编译为“紧急程序”以避免抛出错误。

您在此处拥有所有信息:

http://guides.rubyonrails.org/asset_pipeline.html