Rails Active Admin css, конфликтующий с Twitter Bootstrap css

Я немного новичок в конвейере Rails, поэтому я могу сделать что-то неправильно. Я пытаюсь использовать Active Admin для моего бэкэнд и twitter bootstrap css для моего внешнего приложения.

Я добавил bootstrap.css в /app/assets/stylesheets, а затем добавил:

//= require bootstrap

в application.css - тогда я сделал прекомпиляцию активов локально

Кажется, что все хорошо, но некоторые из стилей не проходят точно, и я думаю, потому что активный admin css переопределяет его.

Я понимаю, что приложение компилирует css-активы в общий ресурс css приложения, и приложение использует этот файл при запуске.

Мне нужно как-то разделить эти два и заставить использовать twitter bootstrap css как основной css на лицевой стороне и, возможно, сказать, что не использовать файлы active admin css на передней панели.

Какой лучший способ сделать это?

Ответ 1

Вы смотрели видео RailsCasts при использовании ActiveAdmin? В видеоролике Райан показывает вам, как предотвратить включение 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']

Однако один из комментариев на этот ответ SO говорит, что это не нужно. Я до сих пор не нуждался в этом.

Ответ 2

У меня была та же проблема, и я смог ее исправить, перемещая

app/assets/stylesheets/active_admin.css.scss

к

vendor/assets/stylesheets/active_admin.css.scss

Активные атрибуты admin должны находиться в vendor/, как указано в rails guide:

"Поставщик/активы - это активы, принадлежащие внешним организациям, такие как код для плагинов JavaScript и рамки CSS".

Ответ 3

Для меня изменение application.css на следующий решает проблему:

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