2012-04-16 59 views
36

我对Rails资产管道有点新鲜,所以我可能会做错事。我正在尝试为我的后端应用程序使用Active Admin,为我的前端应用程序使用twitter引导程序css。Rails Active Admin css与Twitter冲突引导程序css

我加入了bootstrap.css到/应用/资产/样式然后还补充:

//= require bootstrap 

到application.css - 然后我做了资产的预编译本地

似乎工作正常,但一些样式并没有完全通过,我认为这是因为活跃的管理员的CSS重写它。

我的理解是,应用程序将css资源编译到应用程序的css公共资产中,并且应用程序在运行时使用该文件。

我需要以某种方式将二者分开,并使其使用Twitter的引导CSS作为前端的主CSS也许会告诉它不要使用主动管理的CSS在前端文件。

这样做的最好方法是什么?

回答

27

您是否观看过使用ActiveAdmin的RailsCasts视频?在视频中,Ryan向您展示了如何防止ActiveAdmin CSS踩在主应用程序CSS上。

http://railscasts.com/episodes/284-active-admin

移动信息从视频到答案

在application.css删除:

*= require_tree . 

钢轨4,Jiten K建议加入这production.rb

config.assets.precompile += ['active_admin.css'] 

然而,对此答案的评论之一表示这不是必需的。到目前为止,我并不需要它。

+3

MattSlay是正确的......瑞安的RailsCast(#284)将告诉你如何解决这个问题(这一切都因为“require_tree的。 “在application.css中)。删除/编辑将解决CSS问题。 – 2012-04-25 18:03:52

+0

这种方法在开发模式下工作正常,但在生产中,当运行'bundle exec rake assets:precompile'时出现问题:在我的情况下,css文件混合并且bootstrap.css被ActiveaAdmin覆盖。任何想法?。谢谢! – CristianOrellanaBak 2014-03-26 16:05:11

+0

但是但require_tree。就是让所有的CSS文件都能被Rails神奇地整合成一个的魔法......这个答案是矫枉过正的,应该是未被接受的 – AlexChaffee 2016-11-04 19:13:50

125

我有同样的问题,并能够通过移动

app/assets/stylesheets/active_admin.css.scss 

vendor/assets/stylesheets/active_admin.css.scss 

解决它的主动管理资产应该vendor/作为rails guide提到:

“供应商/资产用于外部实体拥有的资产,比如JavaScript插件和CSS框架的代码。“

+0

运行'bundle exec rake assets:precompile '?在我的情况下,css文件完成混合并且bootstrap.css被activeadmin覆盖。任何想法?。 – CristianOrellanaBak 2014-03-26 15:55:36

+0

对我不起作用 – theDazzler 2014-11-07 18:22:41

+9

并对'active_admin.js'执行相同操作。将它移动到'vendor/assets/javascripts/active_admin.js' – Arcolye 2015-05-04 05:39:20

3

对我来说改变application.css到下面的解决了这个问题:

*= require bootstrap 
*= require_tree . 
*= stub "active_admin" 
+0

这似乎是为我工作,谢谢。我一直无法弄清楚“stub”究竟是什么,你介意给我一个快速提示吗? – justinraczak 2017-08-09 00:59:10