2017-10-27 3 views
1

Ich versuche, Metronics Admin-Thema auf meinen Webseiten zu verwenden und möchte meine Vorlagen in Jade/Mops konvertieren. Leider bin ich auf einen Fehler gestoßen, mit dem ich nicht gut umgehen kann. Immer wenn Metronic eine Seite lädt, lädt sie zuerst die Kernskripte und lädt je nachdem, was Sie sonst noch auf der Seite haben, seitenspezifische Plugins und Skripte. Um diese Funktionalität zu imitieren habe ich eine footer.pug Datei, die den Kern-Plugins und Blöcke für seitenspezifische Plugins und Skripte enthält:Jade Bug loading Reihenfolge der Skripte ist vermasselt

// 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 

Diese footer.pug Datei meine einfache layout.pug enthalten ist:

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 

Wenn ich meine eigentliche Web-Seite schreiben, erweitere ich die layout.pug und fügen Sie einen Block am Ende mit dem Namen 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') 

Wenn ich im Browser aussehen Inspector, die richtige HTML erstellt wurde, sind die Skripte in der richtigen Reihenfolge javascript files are in correct order

Allerdings, wenn ich in meinem Netzwerk Tab aussehen, kann ich sehen, dass jQueryUI vor heruntergeladen wurde JQuery:

Scripts are loaded in the wrong order

Und ich erhalte eine Fehlermeldung in der Konsole, dass ich jQueryUI vor JQuery zu laden versuchen. Und aus irgendeinem Grund habe ich den Fehler zweimal:

Console error

Hat jemand eine Lösung für dieses Problem gefunden?

Antwort

0

Dies ist eine Arbeit um. Es ist nicht wirklich eine Lösung für den Bug: Ich benutzte das defer Attribut für das jQueryUI Skriptbibliothek wie folgt aus:

block page_level_plugins 
    script(defer src='../assets/global/plugins/jquery-ui/jquery-ui.min.js', type='text/javascript') 
Verwandte Themen