我有一个样式表,application.css定义layouts/application.html.erb如下:
<%= stylesheet_link_tag "application" %>
Run Code Online (Sandbox Code Playgroud)
但是,网站的一部分视图将使用完全不同的样式表,dashboard.css我在其中定义index.html.erb:
<head>
<title>My title</title>
<%= stylesheet_link_tag "dashboard" %>
..
Run Code Online (Sandbox Code Playgroud)
除非我删除应用程序布局文件中的stylesheet_link_tag,否则会出现使仪表板视图怪异的冲突.如果我将应用程序布局样式表标记移动到_header.html.erb部分,该部分使用非仪表板部分中的每个视图呈现,如下所示,则它不起作用.我怎么称呼他们?
<%= stylesheet_link_tag "application" %>
<header>
<div id="headercontainer">
..
Run Code Online (Sandbox Code Playgroud)
使用特定样式表为仪表板创建单独的布局.
如果您想要为其中一个控制器(及其所有操作)定制样式表,那么这很容易做到.创建一个具有匹配名称的布局,也就是说,对于您的users_controller模板名称应该是users.html.erb.
您还可以为控制器指定任何布局.
class UsersController < ApplicationController
layout 'some_layout'
end
Run Code Online (Sandbox Code Playgroud)
如果只想为某些操作设置自定义样式表,请在调用时指定相应的布局render.
def dashboard
# some logic here
render :layout => 'some_layout'
end
Run Code Online (Sandbox Code Playgroud)
你应该在head元素的application.html.erb中使用yield语句:
<head>
<%= yield :head %>
</head>
Run Code Online (Sandbox Code Playgroud)
然后在您的视图中,您将使用content_for标记:
<% content_for :head do %>
<%= stylesheet_link_tag "dashboard" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
还阅读嵌套布局上的rails文档.它会教你如何使用这个范例
| 归档时间: |
|
| 查看次数: |
9427 次 |
| 最近记录: |