2014-11-15 26 views
1

这可能是我错过了一个完全明显的解决方案的例子,但我现在已经尝试了几种方法,并感觉丢失了。Bower and Asset Precompilation in Rails

目前的情况是,我有一个Rails项目使用鲍尔来管理前端资产(jQuery,Angular ..你有这个想法)。我使用了bower-rails gem和“vanilla”bower.json将依赖关系写入vendor/assets/bower_components。

我可以在开发模式下使用一切正常,因为我没有在那里使用uglifier来预处理资产。但在生产模式下,某些资产(如jQuery)无法编译。这是因为uglifier会尝试为jQuery编译和uglify源文件,而不仅仅是使用dist文件夹中的内容(也就是,你猜对了,准备发布)。

我想要做的只是在预编译阶段只包含通过bower提供的文件中与发布相关的文件 - 我不知道如何到达那里。

任何帮助表示赞赏,谢谢。

回答

3

可以明确定义要在config/initializers/assets.rb预编译什么:

Rails.application.config.assets.precompile += %w(dist/*) 

默认情况下,预编译的application.jsapplication.css和一些其他的东西,你可以重写,如果你这个行为不希望它们被预编译。

看看Rails official guide,它解释了如何使用包含资产的更加困难的规则进行预编译。

+0

好吧,我想我可以自定义什么是加载和写我所需的逻辑,但是..我希望有人已经这样做了。就目前而言,我刚刚关闭了资产预编译功能,并且对这些资源进行了即时编译,因此一切都很顺利。 – moritz