41

我对 Rails 资产管道有些陌生,所以我可能做错了什么。我正在尝试将 Active Admin 用于我的后端,并将 twitter bootstrap css 用于我的前端应用程序。

我将 bootstrap.css 添加到/app/assets/stylesheets然后还添加了:

//= require bootstrap

到 application.css - 然后我在本地对资产进行了预编译

它似乎工作正常,但有些样式并没有完全通过,我认为这是因为活动管理员的 css 覆盖了它。

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

我需要以某种方式将两者分开并使其使用twitter bootstrap css作为前端的主要 css,并且可能告诉它不要在前端使用活动管理员的 css文件。

最好的方法是什么?

4

3 回答 3

132

我有同样的问题,并且能够通过移动来解决它

app/assets/stylesheets/active_admin.css.scss

vendor/assets/stylesheets/active_admin.css.scss

活动的管理资产应该rails 指南vendor/中提到:

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

于 2012-07-31T17:10:23.707 回答
29

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

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

将视频中的信息转移到答案中

在 application.css 你删除:

*= require_tree .

对于 rails 4,Jiten K建议将其添加到production.rb

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

然而,关于那个 SO 答案的评论之一说这不是必需的。到目前为止我还不需要它。

于 2012-04-25T17:57:24.363 回答
11

对我来说application.css,改为以下解决了这个问题:

 *= require bootstrap
 *= require_tree .
 *= stub "active_admin"
于 2016-11-23T12:59:22.987 回答