我试图使我的索引动作仅呈现样式表/背景图像,但是由于某种原因,背景图像也出现在所有其他页面上。我的欢迎控制器正在处理所有这些。布局文件称为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/

10-11 06:46