Использование jQuery локально с Bootstrap для Django не отвечает
У меня есть это в моем base.html
файле included
{% load bootstrap4 %}
{% bootstrap_css %}
{% bootstrap_javascript jquery='full' %}
И я использую navbar navbar-expand-lg navbar-light
из Bootstrap для моего navbar
.
Это работает. Когда я использую маленький дисплей (например, смартфон), меню сжимается до выпадающего элемента с кнопкой для расширения.
Но часть {% bootstrap_javascript jquery='full' %}
занимает слишком много времени для полной загрузки источника jquery из сети:
Около 400 мс без кэша. Я хотел бы сократить это время ожидания настолько, насколько это возможно.
Поэтому я скачал последнюю версию jquery 3.6.0
с официального сайта, сохранил ее локально в своих статических файлах следующим образом
static/main_app/scripts/jQuery.js
загрузил его локально с
<script type="text/javascript" src="{% static 'main_app/scripts/jQuery.js' %}"></script>
в моем base.html
. Это работает, и jQuery работает нормально. Но кнопки nav-bar
Bootstrap не реагируют.
Также нет сообщения об ошибке в консоли браузера.
Вот я и подумал: Может быть, версия jQuery неправильная? Поэтому я попытался снова внедрить рабочую версию на свой сайт
{% bootstrap_javascript jquery='full' %}
, нашел исходный код вышеуказанного файла в dev-tools моего браузера, скопировал & вставил исходный код в мой jQuery.js
файл и снова загрузил сайт. Ничего не изменилось, и navbar
по-прежнему не работает.
Есть ли что-то, что я упускаю?
*** ОБНОВЛЕНИЕ ***
Работает, когда я устанавливаю
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
но с
{% load bootstrap4 %}
Это означает, что я загружаю bootstrap
два раза...
Я смог переписать BOOTSTRAP4
настройки пакета pip (вызов jquery) из CDN в локальный файл settings.py
вот так
BOOTSTRAP4 = {
"jquery_url": {
"url": f"{STATIC_URL}main_app/scripts/jquery.js",
},
}
Также здесь есть другие варианты перезаписи