由于特定的设置,我想将编译的样式表拆分为两个文件。这是因为可以解析CSS的Java应用程序需要(一部分)CSS,但它有点错误并且无法处理某些css-(hack)-syntax。因为我无法修改这个Java应用程序,所以我想只提供它需要的CSS,并且我可以确保它是正确的。
因此,通常资产管道只生成一个'/assets/application-[..].css'文件。它会让它根据我做的文件选择生成'/assets/custom-[..].css'。这仍然可以预先编译。
有办法做到这一点吗?虽然我明白这不是理想的设置..
答案 0 :(得分:13)
要告知您希望预编译的其他文件,可以将其添加到config.assets.precompile
设置。
config.assets.precompile += ["other_application.css"]
您只在HTML中看到application.css
,因为这是您要包含的唯一文件
<%= stylesheet_link_tag "application" %>
如果您的custom.css.scss
目录中有一些apps/assets/stylesheets
,则会像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" %>