Ruby on Rails css资产管道组织问题

时间:2012-04-23 16:04:30

标签: ruby-on-rails css asset-pipeline

我必须在我的应用程序的show.html.haml页面上使用某个表格样式。具体来说,我不希望这种样式应用于_form.html.haml partials中的表单。以下是样式元素:

  table {
    border-collapse: collapse;
    width:100%;
  }

  td, th {
    border: 1px solid gray;
    padding:5px;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: ellipsis;
  }

  th {
    background-color: #ccc;
    text-shadow: 1px 1px 1px rgba(0,0,0,.2);
  }

我在app / vendor / assets / web-app-theme / stylesheets目录中创建了一个名为data_tables.css的小文件,并将其包含在我的application.js中,如下所示:

* = require web-app-theme / data_tables

麻烦的是:它不仅会影响我的show.html.haml页面中的表格(我想要的),还会影响_form_html.haml部分(我不想要的)。显然,我对资产组织并不完全了解。以下是app / assets / stylesheets目录中application.css文件的内容:

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
 * the top of the compiled file, but it's generally better to create a new file per style scope.
 *= require web-app-theme/base
 *= require web-app-theme/style
 *= require web-app-theme/wat_ext
 *= require web-app-theme/data-tables
 *= require formalize
 *= require jquery.ui.core
 *= require jquery.ui.theme
 *= require jquery.ui.tabs
 *= require dataTables/src/demo_table_jui
 *= require_self
 *= require_tree . 
*/

1 个答案:

答案 0 :(得分:1)

在资产编译期间,您在清单中声明的​​所有内容都会转储到单个文件中。解决问题的最佳方法是将类分配给希望CSS影响并相应更改的表。

或者,您可以从清单中删除此文件,并使用stylesheet_link_tag之类的视图调用此文件:

<%=stylesheet_link_tag "web-app-theme/data_tables"%>

但是这不是你想要用于小文件的东西,因为它会增加对服务器的请求量。