2016-05-17 13 views
0

In mehreren nginx Tutorial-Sites zu ermöglichen, zu erklären, „wie gzip Kompression einzurichten:“ Ich habe diese Liste der MIME-Typen gesehen wiederholt:nginx, welche Inhaltstypen Kompression für

gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

Allerdings habe ich sofort Es wurde festgestellt, dass diese Liste nicht dazu führte, dass die Komprimierung für JavaScript in Chromium aktiviert wurde. Ich musste application/javascript zu der Liste hinzufügen. Das lässt mich glauben, dass diese Liste veraltet ist.

Gibt es eine definitive Liste aller Inhaltstypen, die ich gzip möchte?

Antwort

1

Es gibt keine definitive Liste der Dateitypen Sie würde gzip wollen. Jeder Dateityp, der als reiner Text lesbar ist (d. H. Nicht binäre Dateien), kann gezippt werden, und somit wäre eine "endgültige" Liste massiv. Daher hängt es letztendlich davon ab, welche Dateitypen Sie tatsächlich bedienen, die Sie für eine bestimmte Datei über den HTTP-Header Content-Type überprüfen können.

Wenn Sie doppelt sicher sein wollen, dass Sie alle möglichen MIME-Typen für eine bestimmte Erweiterung abdecken (was ich denke, ist vernünftig), Blick auf this SO post, this text file enthält eine ziemlich darn erschöpfende Liste.

Es ist wichtig, dass einige binäre Dateitypen wie .png und .pdf (auch .woff) Kompression selbst in das Format übernehmen zu beachten und sollten als solche nicht im gzip werden (da dies eine komprimierte Datei größer als das Original erzeugen konnte). Meine Faustregel lautet: Wenn mein Code-Editor die Datei nicht als UTF-8-Text lesen kann, wäre das Gippen der Datei nicht sinnvoll (oder zumindest nicht sehr effizient).

FWIW, ich gzip typischerweise die folgenden Formate (in meinem Apache .htaccess) auf meiner Website:

<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/html text/xml text/css text/javascript application/javascript application/x-javascript application/json application/xml image/svg+xml 
</IfModule>