从没有清单的Rails视图中声明的样式表生成单个CSS文件

时间:2012-11-13 12:57:56

标签: ruby-on-rails ruby-on-rails-3 stylesheet asset-pipeline sprockets

我目前使用以下命令在我的Rails视图中声明了特定于视图的样式表:

<% content_for :page_specific_stylesheets do %>
  <%= stylesheet_link_tag "some-stylesheet", :media => "all" %>
  <%= stylesheet_link_tag "some-other-stylesheet", :media => "all" %>
<% end %>

我还有一个单独的应用程序范围的样式表,它是通过application.css清单从Sass partials和单独的样式表构建的。我喜欢在我的视图中列出特定于页面的样式表,但问题在于它们没有组合和缩小,而是作为单独的样式表包含在页面中。我知道我可以在这里引用页面的单个清单样式表,并且引用特定于页面的样式表,但是我想跳过这个清单并保持在视图中声明的各个样式表,因为我觉得它更清晰。

所以我有什么方法可以告诉Rails / Sprockets从视图中组合和缩小一组样式表。显然,这会给我每页两个样式表 - 我的网站范围样式表和特定于页面的样式表,但这对我来说没问题。

1 个答案:

答案 0 :(得分:0)

没有办法从视图中合并文件,但样式表可以表现为清单。如果您使用@include指令,Sass会通过将该文件的内容插入调用文件来预编译它。

留下第二个声明:

<% content_for :page_specific_stylesheets do %>
  <%= stylesheet_link_tag "some-other-stylesheet", :media => "all" %>
<% end %>

并在some-other-stylesheet.css.scss的顶部,包含第一个:

@include "some-stylesheet";

/* Other Sass... */