如何使用rails资产管道获得多个输出文件?

时间:2011-12-01 14:27:08

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

我正在开发一个处理公共区域的rails应用程序(截至今天,静态页面),以及具有身份验证等的私有空间。这两个都是独立开发的。第一个是手工制作的风格,后者使用twitter bootstrap。

在生产中,rails将我的资产编译成一个文件,并且一些样式是冲突的,导致公共区域有一些Twitter Bootstrap的元素......不是我想要的。

有没有办法配置资产管道,所以当它编译时,有两个输出?经典的application.css和front.css?

1 个答案:

答案 0 :(得分:7)

是的,有。您需要有两个清单文件。我会将公众称为application.css,将私人称为admin.css,因为这是一个常见的Rails惯例。

application.css应该需要所有公共CSS文件,您需要删除require_tree指令,因为这包含了您不想要的内容。

第二个清单文件admin.css将包含您想要私有方的内容。

然后,您可以使用Rails帮助程序在布局中引用这些文件。

您需要将admin.css(和.js,如果有的话)添加到预编译数组中,以便在生产中正常工作:

config.assets.precompile += ['admin.js', 'admin.css']