如何阻止bootstrap-sass gem加载Bootstrap js两次?

时间:2014-12-09 14:51:18

标签: ruby-on-rails twitter-bootstrap ruby-on-rails-4

这是我的Gemfile:

gem 'bootstrap-sass', '~> 3.2.0.0'

这是我的application.js

//= require bootstrap
//= require bootstrap-sprockets
//= require bootstrap.file-input

我的bootstrap_and_overrides.css.scss看起来像这样:

@import "bootstrap-sprockets";
@import "bootstrap";

当我查看我的页面来源时,我看到了:

<script data-turbolinks-track="true" src="/assets/bootstrap.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/affix.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/alert.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/button.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/carousel.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/collapse.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/dropdown.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/tab.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/transition.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/scrollspy.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/modal.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/tooltip.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap/popover.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap-sprockets.js?body=1"></script>

官方文件说明了这一点:

Plugins can be included individually (using Bootstrap's individual *.js files), or all at once (using bootstrap.js or the minified bootstrap.min.js).

当我在我的应用程序中使用Bootstrap网站的默认模态代码时,会发生什么事情,它会快速启动并消失。经过大量研究后,我相信这是因为Bootstrap被加载了两次。常规Bootstrap.js包含模式所需的信息,因此我不需要包含bootstrap/modal.js,但我不确定如何删除它。

思想?

1 个答案:

答案 0 :(得分:2)

因为你把它包括了两次,显然。 official docs说:

  

需要Bootstrap Javascripts   app/assets/javascripts/application.js

//= require jquery
//= require bootstrap-sprockets