CSS样式表未在Rails 3.2.8中应用

时间:2012-11-24 08:31:05

标签: css ruby-on-rails-3 ruby-on-rails-3.2 sass

出于某种原因,我无法在产品中正确应用样式表 我正在阅读这本书"使用Rails第4版和#34;进行敏捷Web开发。在书中,看起来产品表中的背景与粉色和其他颜色交替。

我在轨道上的新手我还不太了解CSS或SCSS。

文件../depot/app/assets/stylesheets/products.css.scss具有以下内容:

/* START_HIGHLIGHT */
.products {
  table {
    border-collapse: collapse;
  }

  table tr td {
    padding: 5px;
    vertical-align: top;
  }

  .list_image {
    width:  60px;
    height: 70px;
  }

  .list_description {
    width: 60%;

    dl {
      margin: 0;
    }
dt {
      color:        #244;
      font-weight:  bold;
      font-size:    larger;
    }

    dd {
      margin: 0;
    }
  }

  .list_actions {
    font-size:    x-small;
    text-align:   right;
    padding-left: 1em;
  }

  .list_line_even {
    background:   #e0f8f8;
  }
  .list_line_odd {
    background:   #f8b0f8;
  }
}
/* END_HIGHLIGHT */

这是..app / views / products / index.html.erb

<h1>Listing products</h1>

<table>
<% @products.each do |product| %>
  <tr class="<%= cycle('list_line_odd', 'list_line_even') %>">

    <td>
      <%= image_tag(product.image_url, class: 'list_image') %>
    </td>

    <td class="list_description">
      <dl>
        <dt><%= product.title %></dt>
        <dd><%= truncate(strip_tags(product.description),
               length: 80) %></dd>
      </dl>
    </td>

    <td class="list_actions">
      <%= link_to 'Show', product %><br/>
      <%= link_to 'Edit', edit_product_path(product) %><br/>
      <%= link_to 'Destroy', product,
                  confirm: 'Are you sure?' ,
                  method: :delete %>
    </td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New product', new_product_path %>

和..app / views / layouts / application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>Depot</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<!-- START_HIGHLIGHT -->
<body class'<%= controller.controller_name %>'>
<!-- END_HIGHLIGHT -->

<%= yield %>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

首先

<body class'<%= controller.controller_name %>'>

我认为=在这里缺失:

<body class='<%= controller.controller_name %>'>

第二个

没有清单文件(application.css)很难说你是否需要样式表,但我认为它应该是:

/*
 *= require_self
 *= require products
 */

甚至更好,而不是要求内部清单文件,在布局中以这种方式包含特定控制器的css:

<%= stylesheet_link_tag params[:controller] %>

在提出问题之前,为了获得最佳实践,请确保在您的浏览器中包含特定的CSS。使用开发人员工具检查已编译的css或文档结构。

最好的