Wie kann ich Drupal anweisen, meine CSS-Datei nicht zu aggregieren?

7

Ich habe Drupals Aggregat aktiviert und CSS-Dateien komprimiert . Was kann ich tun, um bestimmte CSS-Dateien von der Aggregation und Komprimierung auszuschließen? Vielen Dank.

karthik
quelle
1
Könnten Sie erwähnen, wofür es gut wäre? Ich bin neugierig.
Scorchio
Ich habe eine CSS-Datei, die sich pro Knoten ändert, und möchte nicht, dass sie Teil des großen CSS ist.
Karthik

Antworten:

12

Um zu verhindern, dass eine Datei aggregiert wird, können Sie dem Befehl drupal_add_css () ein Flag hinzufügen, mit dem die Datei geladen wird . Suchen Sie dazu, wo das CSS hinzugefügt wird, und fügen Sie array('preprocess' => FALSE)nach dem Stil hinzu, z

drupal_add_css('/fonts/fonts-min.css', array('preprocess' => FALSE));

Alternativ wird externes CSS niemals komprimiert. Wenn Sie also das CSS in die absolute URL der Datei ändern, wird es nicht komprimiert.

drupal_add_css('http://mysite/css/fonts-min.css');

Wenn Sie ein CSS ändern möchten, das in einer .info-Datei enthalten ist, fügen Sie es möglicherweise am besten als externe Datei mit _preprocess_htmlin template.php hinzu. Dies wird unter "Hinzufügen externer Stylesheets" auf dieser Seite ausführlich erläutert .

John C.
quelle
Hey, danke, du hast recht, aber soll es nicht sein array('preprocess' => FALSE));? Das sagt der Arzt.
Karthik
Oopse, richtig, mein schlechtes. Kopierte es aus den Standardeinstellungen, damit ich die Schreibweise nicht falsch verstehe: - /
John C
1

Ich hatte auch dieses Problem, aber anstatt drupal_add_css zu verwenden, habe ich meine Dateien an eine Seite wie diese angehängt:

function module_preprocess_page(&$variables) {
  $variables['some_element']['#attached'] = array(
    'css' => array(
      'path/to/css/style.css',
    )
  )
}

Beim Durchsuchen des angehängten Kerncodes stellte ich fest, dass wir die Lösung von John C auch hier folgendermaßen verwenden können:

function module_preprocess_page(&$variables) {
  $variables['some_element']['#attached'] = array(
    'css' => array(
      'path/to/css/style.css' => array(
        'preprocess' => FALSE,
      )
    )
  )
}
Patrick Scheffer
quelle
0

Wie ich das auf Drupal 8 wirklich dreckig gemacht habe, da es immer noch in der Entwicklung ist und sich jetzt zu viel ändert:

THEMENAME.theme Datei:

function THEMENAME_preprocess_html(&$variables) {
  $variables['css_address'] = drupal_get_path('theme', 'themename') . '/cssfile.css';
}

Und so etwas zum Head-Tag in der Vorlagendatei html.html.twig hinzugefügt :

<link rel="stylesheet" type="text/css" href="{{ css_address }}">

Es wird bald einen besseren Weg geben.

Pouya Sanooei
quelle