在Rails中,如何将资产管道中的样式表作为<style>标记包含在内?

Ala*_* H. 5 ruby-on-rails ruby-on-rails-3 asset-pipeline ruby-on-rails-3.2 ruby-on-rails-4

每个人都知道如何使用stylesheet_link_tag链接到一个样式表,但我想其实是包括在页面本身的整个样式表.(不,这通常不是一个很好的做法,但在这种情况下它是有道理的.)

stylesheet_include_tag 并不存在,并且在Rails中比一个更大的坏人的同事比我说的没有一个简单的方法.

问题:
实际上是否可以使用资产管道仍然将CSS或JavaScript文件(从Sass或CoffeeScript编译!)的内容嵌入到.haml视图中?怎么样?


为清晰起见添加:

我希望我的布局能够包含以下内容:

= stylesheet_link_tag "base"
= stylesheet_embed_tag "page-specific-styles/foo"
Run Code Online (Sandbox Code Playgroud)

并按照这些行生成输出HTML:

<link rel="stylesheet" href="/base.css" />
<style type="text/css">.foo { color: red; }</style>
Run Code Online (Sandbox Code Playgroud)

更新

如果正确设置了initalizer,可以在Haml中使用Sass ,但我似乎无法@import "foo"从这个上下文foo.css.sass中看到资产管道中的样式表.请注意@import "compass"(假设您有罗盘宝石)确实有效.

这看起来像(haml):

%style
  :sass
    @import "foo"
Run Code Online (Sandbox Code Playgroud)

Rails给出了一个错误,即"foo"无法找到,即使它声称正在寻找app/assets/stylesheets(这就是foo.css.sass生命的地方).

所以,这感觉更接近,但仍然不完全.

sam*_*207 0

如果我正确理解你的问题,你可以将 CSS 代码添加到普通的 Ruby 视图文件(作为部分),例如styles.html.erb.

然后根据您想要的任何条件将其添加到您的页面,我认为这是查看它的最简单的方式。