我正在尝试在我的网页上使用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文件包含在我的简单layout.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之前下载了:
我在控制台中遇到错误,我试图在JQuery之前加载JQueryUI。由于某种原因,我得到错误两次:
有没有人找到解决这个问题的方法?
答案 0 :(得分:0)
这是一个解决方法。它不是错误的解决方案:我使用了 defer 属性作为JQueryUI脚本库,如下所示:
block page_level_plugins
script(defer src='../assets/global/plugins/jquery-ui/jquery-ui.min.js', type='text/javascript')