Ruby on rails 将资产管道与文件组一起使用

Ruby on rails 将资产管道与文件组一起使用,ruby-on-rails,ruby-on-rails-3.1,asset-pipeline,Ruby On Rails,Ruby On Rails 3.1,Asset Pipeline,在资产管道的Rails文档中,它声明: Rails 3.1及以后版本中的默认行为是连接所有 将每个JS和CSS的文件合并到一个主文件中。但是,你可以 如果需要,单独的文件或文件组(见下文) 您如何准确地将文件按所示分组?例如,如果我有一个应用程序也有一个管理区域,我想创建三个编译文件: shared.css(前端和后端都使用它) application.css(仅限前端) admin.css(仅限后端) 默认设置是将我的所有文件合并到application.css中。显然,我的阅读理解能力很差(

在资产管道的Rails文档中,它声明:

Rails 3.1及以后版本中的默认行为是连接所有 将每个JS和CSS的文件合并到一个主文件中。但是,你可以 如果需要,单独的文件或文件组(见下文)

您如何准确地将文件按所示分组?例如,如果我有一个应用程序也有一个管理区域,我想创建三个编译文件:

shared.css(前端和后端都使用它)
application.css(仅限前端)
admin.css(仅限后端)


默认设置是将我的所有文件合并到application.css中。

显然,我的阅读理解能力很差(tl;dr)。似乎当你使用

stylesheet_link_tag 'application'
我在app/assets/stylesheets/application(css | sass)中查找一个清单文件,该文件定义了要包含哪些工作表

所以我可以用

stylesheet_link_tag 'admin'
在我的后端查找该清单。下面是我的资产结构的最终结果:

/app
  /assets
    /stylesheets
      admin.css
      application.css
      /admin
        screen.css
      /application
        screen.css
      /shared
        layout.sass
        reset.css
        typography.sass
admin.css和application.css是我的清单,它们分别如下所示:

/** admin.css
 *= require_self
 *= require shared/reset
 *= require shared/layout
 *= require shared/typography
 *= require admin/screen
*/

/** application.css
 *= require_self
 *= require shared/reset
 *= require shared/layout
 *= require shared/typography
 *= require application/screen
*/

您可以看到,每个都只引用共享的工作表,然后需要特定于上下文的工作表。

您需要为每个区域创建清单。例如:

admin.css:

/*
 *= require shared/nomalize
 *= require shared/960.css
 *= require admin/base
 *= require admin/tables
 */
/*
 *= require shared/nomalize
 *= require shared/960.css
 *= require public/base
 *= require public/branding
 */
shared.css:

/*
 *= require shared/nomalize
 *= require shared/960.css
 *= require admin/base
 *= require admin/tables
 */
/*
 *= require shared/nomalize
 *= require shared/960.css
 *= require public/base
 *= require public/branding
 */
您可以自由创建文件夹来保存共享、公共和管理CSS,并根据需要使用这些CSS。您必须从任何清单中删除require_树指令

在布局中参考以下内容:

<%= stylesheet_link_tag "application" %>
<%= stylesheet_link_tag "admin" %>

请注意预编译数组。感谢admin.css您可以选择“require_tree./admin”和“require_tree./shared”来避免单独键入文件名。