RoR 样式表布局视图链接。 `:media => all` 是啥意思

Posted

技术标签:

【中文标题】RoR 样式表布局视图链接。 `:media => all` 是啥意思【英文标题】:RoR stylesheet layout view link. What does `:media => all` meanRoR 样式表布局视图链接。 `:media => all` 是什么意思 【发布时间】:2013-04-15 11:07:37 【问题描述】:

我有:

<&= stylesheet_link_tag    "application", :media => "all" %>

但我正在为我的应用程序中的某些视图添加(完全)替代布局,并带有单独的样式表。我想将现有布局仅链接到一些样式表,并添加其他样式表。我需要在这里改变什么?

【问题讨论】:

【参考方案1】:

为此,您可以在视图/布局中创建类似于 application.html.erb 的新文件 例如,我正在创建 home.html.erb.Link 你所有的样式表和 js 文件,最后只需在你需要的控制器中添加该布局名称为 layout 'home'

【讨论】:

这就是我所做的,但我想知道我应该在新布局和旧布局的 stylesheet_link_tag 行中写什么,以便它们各自链接到自己的样式表 您只需在新布局中添加所需的样式表 "all") %> 谢谢。但是我应该把media=&gt; all 留在那里吗?这不会调用所有样式表,包括其他布局的样式表吗?【参考方案2】:

您可以使用单独的清单文件并包含这些清单文件 This answer 将帮助您如何做到这一点

【讨论】:

我目前有一个控制器渲染一个不同的布局文件,我正在尝试有一个单独的布局。这也可能吗? 是的,你可以在你的布局中假设它是 sigin 布局你可以使用登录清单【参考方案3】:

它指定当以所有媒体类型查看页面时应加载您的application.css。它是 CSS 属性,而不是 Rails 属性。

更多详情请见http://www.w3.org/TR/CSS2/media.html#media-sheets。

【讨论】:

【参考方案4】:

您可以为整个控制器或特定操作添加单独的布局

例如:

在您的控制器中:

layout :resolve_layout
 #controller code
 ...
def resolve_layout
    case action_name
    when "new", "create", "wait_conformation"
      "customer_layout"    
    else
      "producer_layout"
    end
end

这里的customer_layout & producer_layout 是布局文件。

【讨论】:

以上是关于RoR 样式表布局视图链接。 `:media => all` 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

响应式布局

响应式头部链接样式表

RoR - 我的一个控制器中的视图无缘无故地不显示应用程序布局

css样式不止是浏览器

链接指南针样式表

CSS---基础外部样式表