1

我正在尝试自定义预编译的资产。在生产中,我只希望编译 application.js 和 applicaiton.css,而不是包含所有后续文件。

例如给出以下文件,我只希望在运行预编译 rake 任务时输出一个文件(appliation.css)

##application.css
//include components/form.elements
//include components/lists

默认是预编译assets目录下的所有assets,比较乱。

编辑更正它是默认预编译资产目录中的所有非 js 和 css 文件。但是,如果您有一个像 form.elements.js sprockets 这样的文件,它将预编译它,认为它是一个非 js/css 文件。

4

2 回答 2

0

检查sprockets 文档,它非常广泛且写得很好。

对于您的特定问题,以下内容application.css将仅递归地包括components/form_elementsandcomponents/lists目录:

/*
 *= require_tree components/form_elements
 *= require_tree components/lists
*/

如果form_elementslists是 css 文件,只需替换require_treerequire.

于 2011-09-21T14:19:38.480 回答
0

只要您没有任何带有额外句点的文件,默认的预编译选项就可以工作。像(jquery.treeview.js)

通过明确定义我想要编译的单个文件,我能够让我的资产以我想要的方式编译。

 config.assets.precompile = [ 'application.css' ]

现在在公共资产文件夹中,只有一个文件包含最小化的所有补充文件内容。

编辑

Rails 默认预编译选项已更改为

[ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) }, /application.(css|js)$/ ]

所以带有额外句点的文件现在可以正确编译

于 2011-09-22T20:14:36.453 回答