Вопрос по css, ruby-on-rails, twitter-bootstrap – Rails Active Admin CSS конфликтует с Twitter Bootstrap CSS

40

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

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

<code>//= require bootstrap
</code>

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

Кажется, это работает нормально, но некоторые стили не проходят точно, и я думаю, что это потому, что css активного администратора переопределяет их.

Насколько я понимаю, приложение компилирует ресурсы CSS в общедоступный ресурс приложения CSS, и приложение использует этот файл при запуске.

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

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

Почему ActiveAdmin просто не меняет свои файлы классов, чтобы использовать такой префикс, как_active-admin- так что они не конфликтуют ни с чем другим? Как библиотеки C делают. Я думаю, что это ошибка в ActiveAdmin. Chloe

Ваш Ответ

3   ответа
132

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

app/assets/stylesheets/active_admin.css.scss

в

vendor/assets/stylesheets/active_admin.css.scss

Активные активы администратораshould быть вvendor/ как упоминалось внаправляющая рельсов:

"Vendor/assets is for assets that are owned by outside entities, such as code for JavaScript plugins and CSS frameworks."

И сделать то же самое дляactive_admin.js, Переместить его вvendor/assets/javascripts/active_admin.js
Кто-то должен представить пиар, чтобы исправить это.
у меня не работает
Это идеальное решение. Зачем загружать кучу дополнительных css вне пространства имен / admin, если вам это не нужно (даже если это не конфликтует)? Только замедляет время загрузки страницы для среднего пользователя.
Работает нормально при запускеbundle exec rake assets:precompile?. В моем случае css-файлы заканчивают смешиваться, а bootstrap.css перезаписывается activeadmin. Любая идея?.
9

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

 *= require bootstrap
 *= require_tree .
 *= stub "active_admin"
Кажется, это работает для меня, спасибо. Я не смог понять, что именноstub Не могли бы вы дать мне быстрый совет?
28

Вы смотрели видео RailsCasts об использовании ActiveAdmin? В видео Райан показывает вам, как предотвратить активацию CSS ActiveAdmin в CSS вашего основного приложения.

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

Перемещение информации из видео в ответ

В application.css вы удаляете:

*= require_tree .

Для рельсов 4,Джитен К предлагает добавить это кproduction.rb:

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

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

но но НОrequire_tree . это магия, которая позволяет всем вашим CSS-файлам волшебным образом превращаться в один из Rails ... этот ответ является излишним и должен быть неприемлемым
MattSlay верен ... Ryan 's RailsCast (# 284) покажет вам, как обойти это (это все из-за "require_tree." В application.css). Удаление / редактирование, которое решит проблему CSS.
Этот метод отлично работает для меня в режиме разработки, но при работе у меня возникает проблема при запускеbundle exec rake assets:precompile: в моем случае css-файлы заканчивают смешиваться, а bootstrap.css перезаписывается ActiveaAdmin. Любая идея?. Спасибо!

Похожие вопросы