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