Порядок загрузки Bootstrap/jQuery в Rails 5 нарушается независимо от того, какой порядок я использую

В моем приложении Rails 5 мы используем переключатели раскрывающегося списка через Bootstrap/jQuery. Проблема в том, что независимо от того, в каком порядке я загружаю jQuery и Bootstrap в application.js, консоль выводит «JavaScript Bootstrap требует jQuery» -ИЛИ- выпадающие списки просто направляются к /# при нажатии. Изменение порядка загрузки временно устраняет проблему, затем она возвращается.

Во-первых, извините, если я что-то забыл здесь. Это мой первый пост в StackOverflow...

Мы изменили порядок загрузки application.js с:

(это не выдает ошибок консоли, просто переключатели перестают работать) .. //= требуется jquery //= требуется загрузка ..

to .. (это выдает «Bootstrap JavaScript требует jQuery в консоли JS) //= требуется загрузка //= требуется jquery ..

и обратно несколько раз

(следующий код проверен, все теги закрыты, я сократил их, чтобы показать, что должны делать две сосуществующие функции)

приложение.js ..

//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require bootstrap
//= require jquery
//= require_tree .

вид быстрого редактирования..

<div class="collapse" id = "quickedit-user-<%= user.id %>
    <%= render partial:users_quick_edit', locals { user: user } %>
</div>

.. выпадающая навигация

..

<li class="dropdown">
    <a href="#" id="dropdownMenu" class= "dropdown-toggle" data-toggle="dropdown">
         <%= current_user.username %> <b class="caret"></b> 
     </a>
     <ul class="dropdown-menu">
          <li><%= link_to "Profile", current_user %></li>

..

В результате правильной загрузки ресурсов должны работать не только переключатели для выпадающих списков, но и «формы быстрого редактирования». Мы этого не видим, так как они ломаются в любой установке.


person KishFox    schedule 10.08.2019    source источник


Ответы (3)


Ответ на этот вопрос связан с включением тега turbolinks в макет. По умолчанию установлено значение true, поэтому отключите его следующим образом:

<%= javascript_include_tag 'application', 'data-turbolinks-eval' => false %>

исправили проблемы, которые у нас были.

person KishFox    schedule 12.08.2019

Разве вы не должны требовать jquery перед начальной загрузкой? В приложении.js...

//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require jquery
//= require bootstrap
//= require_tree .
person Nick M    schedule 10.08.2019
comment
Если вы прочитали весь первоначальный вопрос, я обращаюсь к этому. - person KishFox; 12.08.2019

У меня такие же проблемы в Интернете (выпадающие списки не работают, куча ошибок в console.log), и я решаю их, загружая все в другом порядке (не уверен, что работает в Rails, потому что я его не использую). (ps. 2-й способ попробовать: ну, как альтернатива, если вы не используете эффекты jquery, в zepto.js есть та же функциональность jquery)

я использую в веб-разработке это:

<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<script src="bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="js/jquery-3.5.1.min.js"></script>

поэтому я загружаю их локально на сервер из этих папок, и я использую пакет, потому что он содержит поппер. и поставь их в таком порядке, у меня больше нет ошибок ни в каком виде. НЕ УВЕРЕН, РАБОТАЕТ ЛИ В ВАШЕМ СЛУЧАЕ ЧТО-ТО ПОДОБНОЕ

person Constantin    schedule 06.08.2020