Personal Homepage, Tutorials & Blog

Javascript und CSS mit Gzip komprimieren

Javascript und CSS mit Gzip komprimieren

10. März '10

Ein großes Interesse fürs Web ist es, dass ihre Seiten schnell laden. Die kann unter anderem durch die Komprimierung von Javascripten und CSS-Code erreicht werden.

Javascriptdateien und auch Stylesheets sind oft sehr groß. Als Beispiel verwende ich die Javascript Bibliothek jQuery. Diese hat unkomprimiert ca. 167 kb. Komprimiert kommt man auf eine Größe von nur 44 kb. Dies sind nur noch 26% der ursprünglichen Größe. Durch dieses Verfahren laden die Homepages um ein vielfaches schneller als zuvor.

Was ist nun wenn ein Browser oder ein Gerät nicht mit der Komprimierung zurechtkommt?
Für diesen Fall liegen immernoch die unkomprimierten Dateien auf dem Server.

Dateien komprimieren

An der Einbindung der Dateien in Ihre Homepage ändert sich rein gar nichts. Sie erfolgt wie üblich mit

<link type="text/css" rel="stylesheet" href="css/styles.css" />
<script type="text/javascript" src="js/jquery-latest.js"></script>

Nun müssen Sie die Scripte komprimieren und auf den Server laden. Die Scipte müssen in diesem Fall styles.css.gz und jquery-latest.js.gz heißen und im gleichen Ordner liegen wie die unkomprimierte Version.

Wie komprimiere ich ein Script?
Das Freeware Tool 7zip (Download hier) beherrscht diesen Komprimierungsformat.

.htaccess bearbeiten

Als zweiten Schritt müssen Sie nun folgenden Code in die Datei .htaccess einfügen:

# BEGIN Gzip Compression
AddEncoding gzip .gz
<filesmatch "\.js\.gz$">
AddType "text/javascript" .gz
</filesmatch>
<filesmatch "\.css\.gz$">
AddType "text/css" .gz
</filesmatch>
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME} \.(js|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]
</ifmodule>
# END Gzip Compression

Damit wählt der Server aus, ob Gzip verwendet wird, oder nicht. Wenn ein Gerät die Komprimierung nicht unterstützt, wird die unkomprimierte Version genommen.

Leeren Sie nun Ihren Cache und laden Sie Ihre Seite neu. Die Ladezeiten sind nun erheblich geringer.

 

Wenn Ihnen dieser Artikel gefallen hat, oder Sie Anregungen/Kritik haben, würde ich mich freuen, wenn Sie einen Kommentar schreiben oder das RSS Feed abonnieren, um immer automatisch über die neuesten Artikel auf dieser Seite informiert zu werden. Sie dürfen diesen Artikel oder die gesamte Seite auch gerne verlinken.

13 Kommentare

  1. Carsten Schmitt /

    Hallo,
    Erst mal danke für den Beitrag :-)
    Ich versuche gerade meine Javascript zu komprimieren.
    Wenn ich auf in der Einstellung jedoch “RewriteBase /” eingebe so wie es oben beschrieben wurde, startet mein Server nicht mehr.
    Lasse ich diese Einstellung weg, startet der Server, aber PageSpeed merkt an, dass meine *js nicht komprimiert sind.

    Ich benutze das Programm “wamp” mit “Apache 2.2″

    jemand eine Idee?
    Danke schonmal im vorraus

  2. Man sollte eine solche Komprimierung so oft aktivieren, wie möglich. Immerhin spart man damit eine Menge Bandbreite und Platz.

  3. Das nenne ich doch mal eine super Info. Ich dachte die GZip-Komprimierung geschieht auf einem halbwegs ordentlich konfigurierten Server automatisch, aber konnte nun insgesamt über 100kb einsparen! Vielen Dank für den tollen Tip.

  4. Monika /

    ja das war sie vorher schon— irgendwie werd ich mit page speed vermutlich nicht klar ;)

    also warten was das webmastertool sagt und ob die zufriedener sind ;)
    danke dir für die simple Erklärung – die gebe ich weiter ;)

  5. Monika /

    sorry für den Doppelkommentar,
    aber page speed meldet immer noch ich solle meine .css als gzip ausliefern-daher meine Frage

  6. Monika /

    ich habe eine Frage: die Style.css liegt bei mir nicht im Rootordner sondern in einem tief unten liegenden…
    muss ich da den Serverpfad angeben oder die Url wo die Datei liegt…?

    lg

    • Die .htaccess muss nicht verändert werden, eingebunden werden muss die Datei natürlich mit dem korrekten Pfad:

      <link  type="text/css" rel="stylesheet" href="pfad/zum/verzeichnis/der/styles.css"  />

      Dann sollte es gehen.

      Viele Grüße

  7. G. M. /

    Hallo und vielen Dank für diesen Beitrag und die ausführliche gute Beschreibung!

    Mir ist allerdings noch nicht klar, auf welchen Webservern bzw. bei welchen Hostern und in welchen Browsern das Verfahren funktioniert. Ach, da kommt mir eine Idee: Vielleicht sollte ich es mal testen, indem ich die unkomprimierten .css und .js vorübergehend entferne.

    Für entsprechende Tips bin ich aber dennoch sehr dankbar! :)

    Gruß,
    G.

    • Tobias Fonfara /

      Das Verfahren funktioniert bei allen Webhostern, die das Modul mod_rewrite.c installiert haben. Alle aktuellen Browser sollten das Verfahren inzwischen unterstützen.

      • DerKomprimierer /

        Wie muss man das dann bei php machen?
        So?

        # BEGIN Gzip Compression
        AddEncoding gzip .gz

        AddType “text/javascript” .gz

        AddType “text/css” .gz

        AddType “text/php” .gz

        RewriteEngine On
        RewriteBase /
        RewriteCond %{HTTP:Accept-encoding} gzip
        RewriteCond %{REQUEST_FILENAME} \.(js|css|php)$
        RewriteCond %{REQUEST_FILENAME}.gz -f
        RewriteRule ^(.*)$ $1.gz [QSA,L]

        # END Gzip Compression

        benutze xtc shop veyton

Trackbacks/Pingbacks

  1. CSS und JavaScript Gzipen » Timo Heinrich - Google-Panda-Update-Opfer - [...] http://www.tfonfara.de/javascript-und-css-mit-gzip-komprimieren.xhtml [...]

Einen Kommentar schreiben