it-swarm.com.de

Wie deaktiviere ich das CSS von einem Kernmodul in Drupal 8 mit Libraries-Override?)?

Ich versuche, die CSS-Stile aus dem Layouterkennungsmodul in meiner Datei theme.info.yml zu deaktivieren. Ich habe verschiedene Optionen ausprobiert, aber ich kann es scheinbar nicht zum Laufen bringen. Das habe ich jetzt.

libraries-override:
  core/layout_discovery:
    css:
      theme:
        core/modules/layout_discovery/layouts/twocol/twocol.css: false

Die CSS-Stile können derzeit mithilfe von Stylesheets-Remove entfernt werden, diese Eigenschaft ist jedoch veraltet. Im Moment scheint es jedoch Arbeit zu sein.

Ich würde gerne den richtigen Weg finden, um die CSS-Regeln mithilfe von Bibliotheksüberschreibung zu entfernen, wenn ich kann.

stylesheets-remove:
  - core/modules/layout_discovery/layouts/onecol/onecol.css
3
Nate Dillon

Anscheinend fehlt Ihnen ein Start / Auf dem vollständigen Pfad. Und der Name der überschreibenden Bibliothek sieht ebenfalls falsch aus. Es gibt keine Bibliothek core/layout_discovery. Es muss stattdessen layout_discovery/twocol Sein.

libraries-override:
  layout_discovery/twocol:
    css:
      theme:
        /core/modules/layout_discovery/layouts/twocol/twocol.css: false

Quelle: Bibliotheken überschreiben und erweitern


Alternativ reicht es auch aus, Bibliotheken über hook_page_attachments_alter() zu deaktivieren. Hier kommt ein funktionierendes Code-Snippet, das in die *.theme - Datei Ihres Themas eingefügt wird. Replizieren Sie MYTHEME mit dem Computernamen Ihres Themas.

/**
 * Implements hook_page_attachments_alter().
 */
function MYTHEME_page_attachments_alter(array &$attachments) {

  foreach ($attachments['#attached']['library'] as $key => $library) {

    // Install the Devel submodule Kint for debugging.
    // Check all libs:
    // ksm($attachments['#attached']['library']);

    // Here I disable the core base library.
    // Looks pretty ugly afterwards.
    if ($library == 'system/base') {
      unset($attachments['#attached']['library'][$key]);
    }

    // So for you it must be like following.
    // Simply try to find the right name via ksm($library);
    // or the other ksm() command from above.
    if ($library == 'layout_discovery/twocol') {
      unset($attachments['#attached']['library'][$key]);
    }
  }
}
1
leymannx

Ich wollte die Anzahl der http-Anfragen reduzieren und alle unnötigen Drupal Core-CSS-Dateien deaktivieren. Schließlich funktioniert diese Konfiguration:

libraries-override:    
  layout_discovery/onecol: false

Es sollte in der Datei MY_THEME_NAME.info.yml hinzugefügt werden
Vergessen Sie nicht, alle Caches auf der Seite "admin/config/development/performance" zu löschen.

0
Sergey Serov