0

我使用安裝的(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

回答

0

首先,我強烈建議使用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

0

我有它目前通過顯式調用下拉菜單功能每次turbolinks工作重新加載頁面。

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

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

但我不應該這樣做,所以我真的很想有一個真正的問題的答案。