@Fahrenhei7

Правильная интеграция Bootstrap в приложение Rails?

Интеграция bootstrap в рельсы.
Сделал я все, как подобает инструкциям. По десять раз перепроверял и переделывал пошагово.
В application.css.scss :
/*
 *= require_tree .
 *= require_self
*/
@import "bootstrap-sprockets";
@import "bootstrap";


Итак. Все работает. Написаные кастомные стили в отведенных для каждого из шаблонов файлах scss перекрывают бутстрэп и все работает идеально. Цвета, тени, шрифты. НО. Не работает изменение ширины блока с классом .container
Менял я к слову не сам класс контейнер, а приделывал к нему другой класс и менял его.

Какие выходы я нашел. Которые являются костылями и работают. Но костыли они на то и костыли, что-бы от них избавляться.

1.
application.css.scss :
/*
 *= require_tree .
 *= require_self
*/
@import "bootstrap-sprockets";
@import "bootstrap";

@import "index";


Все бы хорошо, теперь работает, но стили из файла index.scss повторяются в браузере два раза. Первый раз не изменяя нужную ширину, второй раз - как нужно.

2.
Просто создал файл custom.css.scss, в нем, в начале интегрировал бутстрэп а дальше писал стили. Минус в том, что для всех вьюшек проекта писать стили в одном файле - это самоубийство. Да, я согласен, можно разделить @import'ами, но это будет очень странно. Нужно же использовать потенциал рельсов.

Помогите пожалуйста в этом разобраться. То, что что-то мои стили перекрывают, что-то нет, хотя находятся в одном файле - это странно. Это магия. Написал свои костыли тут, что-бы их не предалгали. Спасибо.
  • Вопрос задан
  • 2770 просмотров
Решения вопроса 1
Freika
@Freika
Senior Ruby on Rails developer
Если вы приведете ваш файл application.scss к такому виду:

/*
 *= require_self
 *= require_tree .
*/
@import "bootstrap-sprockets";
@import "bootstrap";


то все получится. Суть в том, что в этом случае сначала будут запрашиваться файлы бутстрапа (require_self), а затем файлы, расположенные в app/assets/stylesheets (require_tree .). Поменяв местами строки вы сможете просто создавать файлы в этой папке, писать в них стили, и они будут иметь более высокий приоритет над бутстраповскими классами, потому что они (бутстраповские классы) были описаны ранее в файле, чем ваши.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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