Ergebnis 1 bis 11 von 11

Thema: Komprimierte CSS und Javascript Dateiein

  1. #1
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    79

    Standard Komprimierte CSS und Javascript Dateiein

    Hallo zusammen,

    ich habe eine allgemeine Frage zum Thema Skripte und CSS-Dateien komprimieren.
    Diese Einstellung lässt sich in den Contao Einstellungen (3.5) ja aktivieren (.htaccess.default wurde zu .htaccess umbenannt, der <IfModule mod_deflate.c><IfModule mod_filter.c>... Bereich ist also aktiv).

    Wirkt sich dies jetzt auch automatisch auf die Dateien aus, die ich in einem eigenen Modul über
    PHP-Code:
    $GLOBALS['TL_JAVASCRIPT'][] = "filename.js" 
    eingebunden habe?
    Ich habe an verschiedenen Stellen gelesen, dass dies nur für zusammengefasste Dateien gilt. Hat jemand eine gute Informationsquelle, in der die Vorgehensweise für das Komprimieren von Skripten unter Contao gut und ggf. auch ausführlich erklärt ist? Aus dem was ich bisher gefunden habe bin ich nämlich nur so halb schlau draus geworden.

    Im Idealfall hätte ich gerne, dass komprimierte Versionen an den Browser geliefert werden, die weder Leerzeichen noch Kommentare und co enthalten.

  2. #2
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von *igi* Beitrag anzeigen
    Diese Einstellung lässt sich in den Contao Einstellungen (3.5) ja aktivieren (.htaccess.default wurde zu .htaccess umbenannt, der <IfModule mod_deflate.c><IfModule mod_filter.c>... Bereich ist also aktiv).
    Die von Dir genannte Einstellung "Skripte komprimieren" in den Systemeinstellungen erzeugt neben den unkomprimierten JS- und CSS-Dateien zusätzlich auch noch GZip-komprimierte Versionen (*.css.gz und *.js.gz) dieser Skripte. Damit der Webserver genau diese GZip-komprimierten Dateien an den Browser überträgt, musst Du weiters in Deiner ".htaccess" Datei die folgenden (standardmäßig auskommentierten) Direktiven aktivieren:
    Code:
      ##
      # If you cannot use mod_deflate, uncomment the following lines to load a
      # compressed .gz version of the aggregated Contao JavaScript and CSS files.
      ##
      #AddEncoding gzip .gz
      #<FilesMatch "\.js\.gz$">
      #  AddType "application/javascript" .gz
      #</FilesMatch>
      #<FilesMatch "\.css\.gz$">
      #  AddType "text/css" .gz
      #</FilesMatch>
      #RewriteCond %{HTTP:Accept-encoding} gzip
      #RewriteCond %{REQUEST_FILENAME} \.(js|css)$
      #RewriteCond %{REQUEST_FILENAME}.gz -f
      #RewriteRule ^(.*)$ $1.gz [QSA,L]
    Im Normalfall ist all das aber gar nicht notwendig, da Contao bzw. der Webserver die Skripte bereits mittels mod_deflate Modul komprimiert an den Browser übermittelt, sofern die ".htaccess" vom Webserver verarbeitet wird. Das Modul mod_deflate muss dafür selbstverständlich verfügbar und geladen sein (was in den allermeisten Fällen zutrifft).
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  3. #3
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    79

    Standard

    Ich habe das gerade mal getestet. Ich habe eine JS und CSS Datei erstellt, die extra viel Democode mit viel Leerzeilen und Kommentaren und co enthalten.
    Die Dateigröße und der Aufbau, der zum Browser übertragen wird, sind aber immer genau gleich. Ich habe auch die von dir genannten Bereiche der .htaccess einkommentiert.

    Cache gelöscht und Seite komplett neu geladen (STRG + F5). Jedoch stelle ich keinen Unterschied bei den besagten Dateien fest (übertragene Datengröße mittels Firebug vergleichen).

    Muss ich evtl. noch etwas anderes bedenken, damit sich dieser Mechanismus auch auf die Dateien meiner Erweiterung auswirken (diese sind ja wie gesagt nicht über das Backend eingebunden).

  4. #4
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Eigentlich sollten auch Deine eigenen Skripte komprimiert übertragen werden, zumal das ja nicht von Contao abhängt, sondern nur vom Webserver bzw. den entsprechenden Direktiven in der ".htaccess". Wenn Deine Skripte zusätzlich auch noch minimiert werden sollen (d. h. ohne Kommentare, Leerzeilen usw.), dann müsstest Du von den betreffenden Skripten auch einen minimierte Version bereitstellen.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  5. #5
    Contao-Fan Avatar von Stefko
    Registriert seit
    25.10.2012.
    Ort
    Karlsruhe
    Beiträge
    774
    User beschenken
    Wunschliste

    Standard

    Moin,

    ich habe den Eindruck, als wenn hier gerade compression (gzip) und minify durcheinander geraten.
    Durch die benannten Einstellungen in der .htaccess überträgt der Server die Daten per gzip komprimiert (wenn er das unterstützt, kannste mal hier testen: https://checkgzipcompression.com/)
    Das bedeutet aber nicht, dass die CSS-Dateien minimiert werden, also Leerstellen und Kommentare entfernt usw. Das müsstest Du schon selbst machen.

    Grüße,
    Stefko

  6. #6
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.753
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich hatte mit dieser Unterscheidung früher auch meine Problemchen, zumal es auch leider ein paar Quellen gibt in denen von Komprimieren geschrieben wird aber Minimieren gemeint ist.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  7. #7
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    79

    Standard

    Okay, stimmt. Ich habe das tatsächlich ein wenig durcheinander gewürfelt, da ich wohl die Hoffnung hatte, dass Contao das alles in einem Rutsch erledigt.
    Vergessen wir die Komponente "minify", dass werde ich dann separat erledigen.

    Die neue Erkenntnis: In meiner lokalen Umgebung (Xampp Apache) schien mod_deflate nicht aktiv gewesen zu sein. Dies habe ich jetzt wie hier beschrieben korrigiert: https://stackoverflow.com/questions/...n-xampp-server. Jetzt ist meine Testdatei von Größe = 19,20 KB / Übertragen 19,20 KB auf Größe 19,20 KB / Übertragen 198 Byte geschrumpft (recht viel, war jedoch auch immer wieder der gleiche Code per copy + paste erzeugt).

    Lustig ist jetzt, dass die Dateigröße nun immer so klein ist, egal wie die Einstellung "Skripte komprimieren" im BE definiert ist. Müsste sich das nicht durch diese Option ändern lassen? Oder habe ich hier noch etwas durcheinander gebracht?

    Vielen Dank und schöne Grüße
    *igi*

  8. #8
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, das müsste das Gleiche sein. Wenn nicht aktiviert, dann macht der Server das gzippen. Wenn aktiviert (und in .htaccess auskommentiert) macht Contao die gz. Ich würde die .htaccess so lassen wie sie original ist und in den Einstellungen deaktivieren.

    Minify gibt es glaube ich auch als Erweiterung. War auch immer mit [theme_plus] möglich, habe ich aber schon Jahre lang nicht mehr benutzt.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  9. #9
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    79

    Standard

    Okay, also wenn der Server willens und in der Lage ist die Kompression durchzuführen, htaccess im Normalzustand lassen und im Contao BE die Einstellung "Skripte komprimieren" deaktiviert lassen. Sollte der Server das aus irgendeinem Grund nicht hinbekommen, htaccess umbauen und BE Einstellung aktivieren (hoffe richtig verstanden)

    Habt Dank für die Hilfestellung. Es gab etwas Klarheit für mich zum Wochenende!

  10. #10
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von *igi* Beitrag anzeigen
    Okay, also wenn der Server willens und in der Lage ist die Kompression durchzuführen, htaccess im Normalzustand lassen und im Contao BE die Einstellung "Skripte komprimieren" deaktiviert lassen. Sollte der Server das aus irgendeinem Grund nicht hinbekommen, htaccess umbauen und BE Einstellung aktivieren (hoffe richtig verstanden)
    Korrekt!
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  11. #11
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Stimme @xchs zu.

    Ich kontrolliere das nie. Wenn der Server kein mod_deflate hat, ist er sowieso "bescheiden". Ich lasse also immer alles so, wie es ist.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •