首页 文章

Rails 5:资产Bower Bootstrap Sass

提问于
浏览
1

关于SO已经有类似的问题,但没有足够明确的回答来理解以下问题 .

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

使用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):我在application.css.scss中添加了 bootstrap-sass/assets/stylesheets/bootstrap 但没有成功:

/*
 *= 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:非常感谢任何理解这个问题的资源 .

2 回答

  • 4

    移动导入,所以它在 /* .. */ 之外

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

    [删除误导性的使用指令而不是导入,因为我错了 . ]

    除了接受的答案之外,如果你查看 bootstrap-sass/assets/stylesheets 目录,你会注意到没有文件 bootstrap.scss 而是一个前缀为下划线的文件 .

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

相关问题