导航栏下拉需要引导程序和引导程序链接需要在生产中工作

问题描述:

我使用安装的(alpha-v6)在rails 5应用程序中。我的导航栏中有一个下拉菜单,其执行方式与documentation中的示例完全相同。导航栏下拉需要引导程序和引导程序链接需要在生产中工作

但它目前只工作无论是在生产或开发,取决于我要求我的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 . 

我知道文档说你不应该同时需要bootstrapbootstrap-sprockets。但到目前为止,我找不到另一种方式使它在生产中工作。

我缺少什么?

+0

也许值得注意的是:只是使用'''bootstrap'''而不是''bootstrap-sprockets'''在开发中根本不起作用。 – Fabian

首先,我强烈建议使用bootstrap-sass gem,这样您就可以利用引导程序的sass变量,类,mixins等等。在我看来,它也更容易与您的rails应用程序集成,并且如果您想要使用它与以前的引导宝石相同的方式,那么你也可以这样做。我的回答是使用bootstrap-sass宝石。

根据bootstrap gem documentation,你不应该包括引导程序和引导程序链轮。

根据该文档:

引导链轮提供个人引导Javascript文件(alert.js或dropdown.js,例如),而自举提供了含有所有引导的Javascript级联文件。

所以正确包括引导的JavaScript功能:

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

此外,这里假设你正在使用的宝石bootstrap-sass

+0

我知道关于不使用bootstrap和bootstrap-sprockets,正如我在我的问题中提到的。我没有使用bootstrap-saas。我正在使用新的bootstrap gem,请参阅我的问题中的gem链接。 – Fabian

+0

请参阅bootstrap-saas gem自述文件的第二行:我正在使用bootstrap 4,并且正在使用正确的gem。 bootstrap-saas将不支持bootstrap 4. – Fabian

+0

难题。无论如何,在你的gemfile.lock中,你的sprockets-rails版本是什么? – Mark

我有它目前通过显式调用下拉菜单功能每次turbolinks工作重新加载页面。

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

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

但我不应该这样做,所以我真的很想有一个真正的问题的答案。