NGINX gzip komprimiert keine JavaScript-Dateien

79

Alle JavaScript-Dateien werden nicht von nginx gzip komprimiert.

CSS-Dateien funktionieren.

In meinem habe nginx.confich folgende Zeilen:

gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_proxied any;
gzip_buffers 16 8k;
gzip_types    text/plain application/x-javascript text/xml text/css;
gzip_vary on;
user3633186
quelle

Antworten:

161

Ändern Sie diese Zeile:

gzip_types    text/plain application/x-javascript text/xml text/css;

Um dies zu sein:

gzip_types    text/plain application/javascript application/x-javascript text/javascript text/xml text/css;

Beachten Sie das Hinzufügen von application/javascriptund text/javascriptzu Ihrer Liste der gzip-Typen.

Darüber hinaus gibt es weitere Details-und eine expansive Liste der gzip - Typen in der Antwort hier gepostet .

Giacomo1968
quelle
8

Dies ist interessant, da der am besten unterstützte alte Standard-MIME-Typ für Javascript im Browser tatsächlich Text / Javascript ist. Und wenn Sie das konfigurieren, /etc/nginx/mime.typesfunktioniert es in.

Text / Javascript (veraltet): JavaScript; In RFC 4329 definiert und überholt, um die Verwendung zugunsten von Anwendung / Javascript zu verhindern. Text / Javascript ist jedoch in HTML 4 und 5 zulässig und wird im Gegensatz zu Anwendung / Javascript browserübergreifend unterstützt. Das Attribut "type" des Tags in HTML5 ist optional und muss überhaupt nicht verwendet werden, da alle Browser immer die richtige Standardeinstellung angenommen haben (auch in HTML 4, wo dies in der Spezifikation erforderlich war).

Aus diesem Thread: Text / Javascript vs Anwendung / Javascript

Das gzip-Modul von nginx basiert also einfach auf früheren Standards und verarbeitet den MIME-Typ für Anwendung / Javascript anscheinend nicht richtig.

Mauro Colella
quelle
1
Dies war die einzige funktionierende Lösungtext/javascript js;
Salem
Ich stehe wieder vor dem gleichen Problem und füge application/javascriptes einfach hinzugzip_types
Salem