Ruby on rails Navbar下拉菜单需要引导,引导链轮需要在生产中工作

Ruby on rails Navbar下拉菜单需要引导,引导链轮需要在生产中工作,ruby-on-rails,twitter-bootstrap,ruby-on-rails-5,twitter-bootstrap-4,Ruby On Rails,Twitter Bootstrap,Ruby On Rails 5,Twitter Bootstrap 4,我在rails 5应用程序中使用已安装的(alpha-v6)。我的导航栏中有一个下拉列表,它的实现与中的示例完全相同 但它目前只能在生产或开发中使用,具体取决于我在application.js中的要求: 发展中的工程: //= require jquery //= require tether //= require bootstrap-sprockets //= require jquery_ujs //= require turbolinks //= require_tree . 生产中的

我在rails 5应用程序中使用已安装的(alpha-v6)。我的导航栏中有一个下拉列表,它的实现与中的示例完全相同

但它目前只能在生产或开发中使用,具体取决于我在application.js中的要求:

发展中的工程:

//= require jquery
//= require tether
//= require bootstrap-sprockets
//= require jquery_ujs
//= require turbolinks
//= require_tree .
生产中的工程:

//= require jquery
//= require tether
//= require bootstrap
//= require bootstrap-sprockets
//= require jquery_ujs
//= require turbolinks
//= require_tree .
我知道文档中说您不应该同时需要
引导
引导链轮
。但到目前为止,我找不到另一种方法使它在生产中发挥作用


我缺少什么?

首先,我强烈建议使用
引导sass
gem,这样你就可以利用引导的sass变量、类、混合等。在我看来,与rails应用程序集成起来也更容易一些,如果你想用和你以前的引导宝石一样的方式使用它,那么你也可以这样做。我的答案取决于您使用的是
bootstrap sass
gem

根据,不应同时包括引导链轮和引导链轮

根据文件:

引导链轮提供单独的引导Javascript文件(例如alert.js或dropdown.js),而引导链轮提供包含所有引导Javascript的连接文件

因此,要正确地包含bootstrap的JavaScript功能:

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks 
//= require_tree

此外,这假设您正在使用gem
引导sass

我现在通过每次turbolinks重新加载页面时显式调用下拉函数来实现它

//= require jquery
//= require jquery_ujs
//= require tether
//= require bootstrap
//= require turbolinks
//= require_tree .

$( document ).on('turbolinks:load', function() {
  $('.dropdown-toggle').dropdown();
})

但我不必这样做,因此我真的希望有一个真正的问题答案。

正如我在问题中提到的,我知道不能同时使用引导和引导链轮。我没有使用自举saas。我正在使用新的bootstrap gem,请参阅问题中的gem链接。请参阅bootstrap saas gem自述文件中的第二行:我正在使用bootstrap 4,我正在使用正确的gem。bootstrap saas将不支持bootstrap 4.Gotcha。无论如何,在gemfile.lock中,您的Sprocket rails版本是什么?Sprocket rails在3.2.0上只是一个偶然的机会,但是尝试在jquery之后和其他任何事情之前立即要求jquery_ujs也是值得注意的:仅仅使用
bootstrap
而不是
bootstrap
在开发中根本不起作用。