it-swarm.com.de

So erzwingen Sie das Laden einer JavaScript-Bibliothek in den <head> einer Drupal 8-Seite)

Wie erzwinge ich das Laden einer JavaScript-Bibliothek in <head> in Drupal 8)?

Hier ist meine Datei themename.libraries.yml:

zaccordion:
  version: 1.x
  js:
    js/jquery.zaccordion.js: { header: true }
    js/jquery.zaccordion.min.js: { header: true }
    js/zaccordionUsage.js: { header: true }
  dependencies:
    - core/jquery

Es wird jedoch immer noch in die Fußzeile geladen.

7
Sage

header: true muss unter Ihrer js-Deklaration stehen, nicht in jeder Datei.

Siehe: https://www.drupal.org/docs/8/theming-drupal-8/adding-stylesheets-css-and-javascript-js-to-a-drupal-8-theme

Standardmäßig werden jetzt alle JS-Assets in die Fußzeile geladen. Das Laden in den Header ist jetzt eine Option, die nur für kritische UI-Elemente erforderlich ist, die nur angezeigt werden können, wenn das entsprechende JS bereits ausgeführt wurde.

js-header:
  header: true
  js:
    header.js: {}

js-footer:
  js:
    footer.js: {}

Sie müssen die neue Header-Eigenschaft für Asset-Bibliotheksdefinitionen auf true setzen, um anzugeben, dass sich die JavaScript-Assets in dieser Asset-Bibliothek im kritischen Pfad befinden und daher aus dem Header geladen werden sollten. Beachten Sie, dass alle direkten und indirekten Abhängigkeiten von Asset-Bibliotheken, die als kritisch markiert sind, ebenfalls automatisch aus dem Header geladen werden, sodass Sie sich keine Sorgen machen müssen, dass Abhängigkeiten nicht verfügbar sind.

11
Kevin