1

Уже есть аналогичные вопросы по SO, но недостаточно ясных ответов, чтобы понять следующую проблему.Rails 5: Активы + Bower + Bootstrap Sass

Моя цель - установить Rails 5 с помощью Bootstrap с помощью Bower.

Использование Бауэр я установил Bootstrap в папке:

vendor/assets/bower_components/bootstrap-sass 

Затем я обновил инициализаторов/активы:

Rails.application.config.assets.paths << Rails.root.join('vendor', 'assets', 'bower_components') 

Затем я добавил Gem 'SASS рельсы' до Gemfile и обновленный application.js:

//= require jquery 
//= require bootstrap-sass/assets/javascripts/bootstrap 
//= require jquery_ujs 
//= require turbolinks 
//= require_tree . 

активы для JS, кажется, работает хорошо: если я загружаю http://localhost:3000/assets/application.js Я могу видеть, что Bootstrap JS часть была там добавлена.

Проблема о Сасс (SCSS): Я добавил самозагрузки-дерзость/активы/таблицы стилей/начальной загрузки в application.css.scss, но без успеха:

/* 
*= require_tree . 
*= require_self 
@import "bootstrap-sass/assets/stylesheets/bootstrap"; 
*/ 

в самом деле, если я загружаю http://localhost:3000/assets/application.css я вижу:

/* 
@import "bootstrap-sass/assets/stylesheets/bootstrap"; 
*/ 

(папка, указанная на @import является содержащим множество _ * SCSS файлов и папка Примеси.)

Вопросы:

  • У вас есть идеи, почему это не работает?
  • не должен я видеть на assets/application.css все CSS скомпилированы?

PS: Любой ресурс, чтобы понять проблему, был бы очень признателен.

ответ

4

Перемещение импорта, так что за пределами /* .. */

/* 
*= require_tree . 
*= require_self 
*/ 

@import "bootstrap-sass/assets/stylesheets/bootstrap"; 
+0

Это не сработает, поскольку @import не использует конвейер Rails. –

+0

@iceman ops, спасибо, хорошо заметили! –

+0

спасибо @JariJokinen, но на самом деле он работает. В документе «Активы» указывается: «Если вы хотите использовать несколько файлов Sass, обычно вы должны использовать правило импорта Sass вместо этих директив Sprockets». –

1

[удалено обманчивых инструкции для использования требуют вместо импорта, так как я был не прав.]

В дополнение к принятым ответ, если вы загляните в каталог bootstrap-sass/assets/stylesheets, вы заметите, что нет файла bootstrap.scss, а скорее префикса с подчеркиванием.

Кроме того, как правило, лучше импортировать только модули, которые вам действительно нужны, из каталога bootstrap-sass/assets/stylesheets/bootstrap/ вместо основного файла _bootstrap.scss.

+0

спасибо за подсказку, он работает так же, как @import "bootstrap-sass/assets/stylesheets/bootstrap". Мне интересно, в чем разница между двумя решениями. –

Смежные вопросы