如何在Rails 3站点中为每个页面设置不同的背景图像?

我正在试图弄清楚如何为我的Rails 3网站的每个页面设置不同的背景图像。 如何在不必重复我的css文件中为每个页面重复的内容的情况下完成此操作?

application.html.erb

   Site title  "all" %>     

pages.css.scss

 .container { width: 800px; height: 640px; position: absolute; left: 50%; top: 50%; margin-top: -320px; margin-left: -400px; background-image: url(amber1.jpg); background-repeat: no-repeat; background-color: black; font-family: times new roman, serif; text-align: center; } 

我认为你不能用css做到这一点。 即使使用scss,也必须先将其编译为纯css,然后才能使用它,因此无法动态更改它。 但你可以省略css中的背景图像然后再做

 

然后你需要做的就是在某种before_filter的控制器中设置@my_computed_image_path。

您可以直接在html中设置background-image属性,如下所示:

    Site title <%= stylesheet_link_tag "application", :media => "all" %> <%= javascript_include_tag "application" %> <%= csrf_meta_tags %>   
<%= yield %>
<%= render 'layouts/footer' %>

您可以直接从@page变量或您想要的方式设置背景图像。

如果您愿意,还可以使用如下样式表为每个页面设置不同的类:

 .page_one{background-image: url(your_first_image.jpg)} .page_two{background-image: url(your_second_image.jpg)} . . 

在你的HTML中:

 

您可以创建my_styles.scss.erb文件并设置如下变量:

 $body-background-color: <%= @page.body_background_color %> 

然后你可以在你的scss文件中使用它。