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

Roe*_*mer 7 ruby-on-rails asset-pipeline

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

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

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

dee*_*our 13

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

config.assets.precompile += ["other_application.css"]
Run Code Online (Sandbox Code Playgroud)

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

<%= stylesheet_link_tag "application" %>
Run Code Online (Sandbox Code Playgroud)

如果您custom.css.scssapps/assets/stylesheets目录中有一些,它将被编译为application.css.

例如,我可能有

- _common.css.scss
- application.css.erb.scss
- other_application.css.erb.scss
Run Code Online (Sandbox Code Playgroud)

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

@import "common";
Run Code Online (Sandbox Code Playgroud)

包括_common.css.scss.我现在可以在布局中独立引用任一样式表.

<%= stylesheet_link_tag "application" %>
# or
<%= stylesheet_link_tag "other_application" %>
Run Code Online (Sandbox Code Playgroud)