Rails asset pipleline:编译为多个样式表

由于特定的设置,我想将编译的样式表拆分为两个文件。 这是因为可以解析CSS的Java应用程序需要CSS(的一部分),但是它有点bug并且无法处理某些css-(hack)-syntax。 因为我无法修改这个Java应用程序,所以我想只提供它需要的CSS,并且我可以确保它是正确的。

因此,通常资产管道只生成一个’/assets/application-[..].css’文件。 它会让它根据我做的文件选择生成’/assets/custom-[..].css’。 这仍然可以预先编译。

有没有办法做到这一点? 虽然我明白这不是理想的设置..

要告诉rails您希望预编译的其他文件,可以将它们添加到config.assets.precompile设置中。

 config.assets.precompile += ["other_application.css"] 

您只在HTML中看到application.css ,因为这是您要包含的唯一文件

 <%= stylesheet_link_tag "application" %> 

如果你的apps/assets/stylesheets目录中有一些custom.css.scss ,它将像application.css一样进行编译。

例如,我可能有

 - _common.css.scss - application.css.erb.scss - other_application.css.erb.scss 

app/assets/stylesheets 。 在我将放置的非部分文件的顶部

 @import "common"; 

包括_common.css.scss 。 我现在可以在布局中相互独立地引用样式表。

 <%= stylesheet_link_tag "application" %> # or <%= stylesheet_link_tag "other_application" %>