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 文件夹)
问题是:
- 您知道为什么这不起作用吗?
- 我不应该在 assets/application.css 上看到所有 CSS 预编译吗?
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
文件中导入您实际需要的模块。
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 文件夹)
问题是:
- 您知道为什么这不起作用吗?
- 我不应该在 assets/application.css 上看到所有 CSS 预编译吗?
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
文件中导入您实际需要的模块。