【发布时间】:2013-08-23 03:49:48
【问题描述】:
每个人都知道如何使用stylesheet_link_tag 来链接 到样式表,但我实际上想在页面本身中包含整个样式表。 (不,这通常不是一个很好的做法,但在这种情况下是有意义的。)
stylesheet_include_tag 不存在,一位在 Rails 中比我更坏的同事说没有简单的方法。
问题:
是否真的可以使用资产管道并且仍然将 CSS 或 JavaScript 文件的内容(从 Sass 或 CoffeeScript 编译!)嵌入到 .haml 视图中?怎么样?
添加为清晰起见:
我希望我的布局能够包含以下内容:
= stylesheet_link_tag "base"
= stylesheet_embed_tag "page-specific-styles/foo"
并让它生成输出 HTML:
<link rel="stylesheet" href="/base.css" />
<style type="text/css">.foo { color: red; }</style>
更新
如果你 set your initalizer correctly 可以在 Haml 中使用 Sass,但我似乎无法从这个上下文中使用 @import "foo",其中 foo.css.sass 是资产管道中的样式表。请注意,@import "compass"(假设您有指南针 gem)确实有效。
这看起来像 (haml):
%style
:sass
@import "foo"
Rails 给出了一个错误,即“foo”无法找到,即使它声称正在查看 app/assets/stylesheets(这是 foo.css.sass 所在的位置)。
所以,这感觉更接近了,但仍然不完全在那里。
【问题讨论】:
-
如果我理解正确,您希望将实际的 CSS 包含到
.haml视图中。 -
@David 是的。我将扩展问题以明确这一点。
-
你会不会考虑使用
content_for :head块,或者我认为你可以像<%= stlyesheet_include_tag 'some_stylesheet' %>一样明确地调用它,但我的意思是它是.haml我相信你不会嵌入ruby 标签使它只是=stylesheet_include_tag 'some_stylesheet我可能错了。但是有两种方法我建议你有两个。希望它有所帮助。 -
H 从你的编辑我完全相信你可能想要使用 rails layout content_for 块 - railscasts.com/episodes/8-layouts-and-content-for 和 guides.rubyonrails.org/…
-
你真的必须有一个特殊情况,才能使用这样的解决方法:-)。但无论如何,我会像@sameera207 所说的那样去做。
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 asset-pipeline ruby-on-rails-4