как остановить активный админ в CSS.файл scss изменяет весь внешний вид моего приложения

у меня есть проект ruby on rails, ruby2 и rails4. У меня установлен самоцвет bootstrap-sass. Недавно я установил activeadmin gem, который добавляет файл active_admin.стиль CSS.scss в папку мое приложение / стили:

// SASS variable overrides must be declared before loading up Active Admin's styles.
//
// To view the variables that Active Admin provides, take a look at
// `app/assets/stylesheets/active_admin/mixins/_variables.css.scss` in the
// Active Admin source.
//
// For example, to change the sidebar width:
// $sidebar-width: 242px;

// Active Admin's got SASS!
@import "active_admin/mixins";
@import "active_admin/base";

// Overriding any non-variable SASS must be done after the fact.
// For example, to change the default status-tag color:
//
//   .status_tag { background: #6090DB; }

теперь кнопки и формы во всем моем проекте, который я разработал с помощью класса bootstrap, выглядят по-разному. Это как active_admin.стиль CSS.scss перегружает весь мой проект. Когда я комментирую нижеприведенные строки так:

   // @import "active_admin/mixins";
   // @import "active_admin/base";

мой оригинальные кнопки возвращаются,но ActiveAdmin-это беспорядок.Любая идея, как я могу разобраться с этой проблемой-просто иметь active_admin.стиль CSS.scss разберется с моими вещами actice_admin и оставит остальных в покое?

5 ответов


обычно административная область имеет свой собственный макет и активы (javascripts и таблицы стилей). Я сомневаюсь,что есть необходимость включать активы active_admin в страницы администратора вашего приложения.

Если приложение.css включает все таблицы стилей по умолчанию с этим:

*= require_true .

затем копирование сторонних активов в папку assets нарушит ваш стиль, как вы описываете. Рассмотрите возможность изменения его, чтобы явно включить таблицы стилей или использовать методы, описанные в этом статья:

http://mrdanadams.com/2011/exclude-active-admin-js-css-rails/

статье 3 года, поэтому ее можно изменить, но идея есть.


лучшим решением, которое работает для Rails 4, является перемещение файлов active_admin css и javascript в /vendor. Чтобы правильно загрузить активы в производство, добавьте следующие строки в config/environments/production.rb:

config.assets.precompile += 
%w( #{Rails.root}/vendor/assets/stylesheets/active_admin.css.scss)
config.assets.precompile += 
%w( #{Rails.root}/vendor/assets/javascripts/active_admin.js.coffee)

Я нашел исправление в этой вопрос.


благодаря следу исследований, начатых Джеймсом Ченом ниже (и благодаря Райану Бейтсу!) Я нашел это видео: http://railscasts.com/episodes/284-active-admin

к концу видео, он исправляет мои проблемы. Не возражал бы, но я посмотрел первую часть видео несколько дней назад, чтобы установить active_admin gem, а затем перестал смотреть.

в основном, если у вас установлен sass, измените свое приложение.css файл для приложение.стиль CSS.scss и некоторые другие мелкие кусочки и бобы.


благодаря Джеймсу Чену и ссылке на блог Дэна Адама. Я решил объединить две статьи в этом ответе. Следующие шаги должны решить проблему на Rails 4.0:

1-Убедитесь, что ваши активные ресурсы администратора не находятся в корневых папках, которые применяются ко всему приложению:

cd app/assets/javascripts
mkdir admin
mv active_admin.js.coffee admin/

cd ../stylesheets
mkdir admin
mv active_admin.css.scss admin/

2-и на самом деле, убедитесь, что активы не включены, путем редактирования обоих файлов assets/stylesheets/application.css и assets/javascripts/application.js изменить require_tree . до require_directory .

3 - Теперь вам нужно изменить активный инициализатор администратора, чтобы захватить два файла, которые вы только что исключили в шагах 1 и 2: В файле config/initializers/active_admin.rb добавить следующие строки:

config.clear_stylesheets!
config.register_stylesheet 'admin/active_admin.css'

config.clear_javascripts!
config.register_javascript 'admin/active_admin.js'

As @Karen указано в этом ответе Rails Active Admin css конфликтует с Twitter Bootstrap css, вы можете просто переместить таблицу стилей active_admin.css.scss с app/assets/stylesheets to vendor/assets/stylesheets