Я пытаюсь использовать тему администратора Metronic на своих веб-страницах и хочу конвертировать мои шаблоны в jade/pug. К сожалению, я столкнулся с ошибкой, с которой я не умею хорошо работать. Всякий раз, когда Metronic загружает страницу, сначала загружает основные сценарии, а затем, в зависимости от того, что еще у вас есть на странице, она загружает специальные плагины и скрипты. Чтобы имитировать эту функциональность, я создал файл footer.pug, который содержит основные плагины и блоки для специальных плагинов и скриптов для конкретных страниц:
// BEGIN CORE PLUGINS
script(src='../assets/global/plugins/jquery.min.js', type='text/javascript')
script(src='../assets/global/plugins/bootstrap/js/bootstrap.min.js', type='text/javascript')
script(src='../assets/global/plugins/js.cookie.min.js', type='text/javascript')
script(src='../assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js', type='text/javascript')
script(src='../assets/global/plugins/jquery.blockui.min.js', type='text/javascript')
script(src='../assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js', type='text/javascript')
// END CORE PLUGINS
// BEGIN PAGE LEVEL PLUGINS
block page_level_plugins
// END PAGE LEVEL PLUGINS
// BEGIN THEME GLOBAL SCRIPTS
script(src='../assets/global/scripts/app.min.js', type='text/javascript')
// END THEME GLOBAL SCRIPTS
// BEGIN PAGE LEVEL SCRIPTS
block page_level_scripts
// END PAGE LEVEL SCRIPTS
// BEGIN THEME LAYOUT SCRIPTS
script(src='../assets/layouts/layout/scripts/layout.min.js', type='text/javascript')
script(src='../assets/layouts/global/scripts/quick-sidebar.min.js', type='text/javascript')
script(src='../assets/layouts/global/scripts/quick-nav.min.js', type='text/javascript')
// END THEME LAYOUT SCRIPTS
Этот файл footer.pug включен в мой простой макет.pug:
doctype html
html
head
if title
title= title
else
title Template page
include head
body.page-header-fixed.page-sidebar-closed-hide-logo.page-content-white.page-md
.page-wrapper
include header
.page-container
.page-content-wrapper
.page-content
block content
include footer
Когда я пишу свою фактическую веб-страницу, я расширяю layout.pug и добавляю блок в конце с именем page_level_plugins
extends partials/layout
block content
if title
h1= title
...
block page_level_plugins
script(src='../assets/global/plugins/jquery-ui/jquery-ui.min.js', type='text/javascript')
Когда я смотрю в браузере Inspector, правильный html был создан, скрипты находятся в правильном порядке
Однако, когда я смотрю на свою вкладку в сети, я вижу, что JQueryUI загружен до JQuery:
И я получаю сообщение об ошибке в консоли, что я пытаюсь загрузить JQueryUI перед JQuery. И по какой-то причине я получаю ошибку дважды:
Кто-нибудь нашел решение этой проблемы?
Это работа. Это на самом деле не решение для ошибки: Я использовал атрибут Defer для библиотеки сценариев JQueryUI, как это:
block page_level_plugins
script(defer src='../assets/global/plugins/jquery-ui/jquery-ui.min.js', type='text/javascript')