我试图使我的索引动作仅呈现样式表/背景图像,但是由于某种原因,背景图像也出现在所有其他页面上。我的欢迎控制器正在处理所有这些。布局文件称为background.css.scss。这是我的欢迎控制器:
class WelcomeController < ApplicationController
layout :resolve_layout
def index
end
def show
end
def about
end
def testimonials
end
private
def resolve_layout
case action_name
when "index"
"background.css.scss"
else
"application"
end
end
end
这是background.css.scss样式表:
body {
width: 100%;
background: {
image: asset-url("sampleimage.png");
repeat: no-repeat;
size: 100% auto;
}
}
索引视图:
background-image: url(<%= asset_path 'sampleimage.jpg' %>)
最佳答案
您应该在application.html.erb布局中使用:yield
:
在application.html.erb中:
..
<head>
<%= yield :head %>
</head>
...
现在在
content_for
视图中添加index
块:<% content_for(:head) do %>
<%= stylesheet_link_tag 'background' %>
<% end %>
请记住,您的
*= require_tree .
中不应包含application.css
,否则background.css.scss
将包含在每个视图中。关于css - 为什么此代码在我所有页面上渲染背景图像,而不是仅在索引操作上渲染背景图像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25610574/