Rails5:资产+凉亭+BootstrapSass

Rails 5: Assets + Bower + Bootstrap Sass

SO上已经有类似的问题,但是没有足够明确的回复来理解下面的问题。

我的目标是使用 Bower 设置 Rails 5 和 Bootstrap。

我使用 Bower 安装了 Bootstrap 在文件夹中:

vendor/assets/bower_components/bootstrap-sass

然后,我更新了initializers/assets:

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

然后我将 gem 'sass-rails' 添加到 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 部分。

问题是关于Sass (SCSS): 我将 bootstrap-sass/assets/stylesheets/bootstrap 添加到 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 文件和一个 mixins 文件夹)

问题是:

PS: 非常感谢任何了解该问题的资源。

移动导入,使其在 /* .. */

之外
/*
 *= require_tree .
 *= require_self
*/

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

[删除了使用 require 而不是 import 的误导性说明,因为我错了。]

除了已接受的答案外,如果您查看 bootstrap-sass/assets/stylesheets 目录,您会发现没有文件 bootstrap.scss,而是一个带有下划线前缀的文件。

此外,通常最好只从 bootstrap-sass/assets/stylesheets/bootstrap/ 目录而不是主 _bootstrap.scss 文件中导入您实际需要的模块。