2013-07-16 78 views
0

我得到这个奇怪的错误。我已将kids.css.less添加到我的application.css中。 我能避免这个错误,如果我在application(and/or environment file)阵列添加到config.assets.precompile,但这不是解决方案,我想用ActionView :: Template :: Error(kids.css没有预编译):

这里是我的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进行部署,并且我的脚本包含资源:预编译

回答

0

在发展,你应该是资产调试(禁用管道),以避免链轮来连接,然后再缩小您的资产:

config.assets.debug = true 

如果你不这样做,Rails的预计资产进行编译:

rake assets:precompile 

如果你不预编译它们,它会尝试编译他们的要求,如果你打开它:

config.assets.compile = true 

否则,如果您不禁用管道,请不要自行编译它们,并且不要让Rails执行此操作,否则会给您带来的错误。在生产中,通常的做法是预先编译它们。实时编译可能会增加大量开销,所以您不应该依赖它。但是,如果在预编译之后将其保留为启用状态则可以:Rails将首先使用您的编译,如果找不到要查找的资产,则会将其编译为“紧急程序”以避免发生错误。

你在这里的所有信息:

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

+0

我已阅读该指南,但没有发现任何可以帮助我的东西。更新我的问题 – Avdept

+0

我编辑了我的答案来解释更多。再次,我的链接的生产部分包含您需要的一切。 – bluehallu

0

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

+0

这是一个坏主意,假设他在发展模式。 – bluehallu

+0

默认情况下,开发中的资产的调试模式处于打开状态,所以我认为他处于生产模式。 –

相关问题