Nicht sicher, warum dies geschlossen wurde, nur weil es keine Programmiersprache beinhaltet, heißt das nicht, dass es nicht mit Codierung zusammenhängt.
BlueRaja - Danny Pflughoeft
@ BlueRaja-DannyPflughoeft Ich stimme zu, dies wurde über 65100 Mal angesehen, daher denke ich, dass es ein gut gesuchtes Thema ist, ganz zu schweigen davon, dass ich jeden Tag htaccess-Fragen beantworte.
@IsmaelMiguel teilt dem Client (und vor allem allen Caching-Servern auf dem Weg) mit, dass sich die Datei für jede Variante des s Anforderungsheaderwerts des Clients Accept-Encoding und nicht für jede Variante des Headerwerts Content-Encodingder Serverantwort unterscheidet.
Aularon
@ BlueRaja-DannyPflughoeft Weil Benutzer mit viel Ruf und Benutzer, die einen guten Ruf suchen, ihren Ruf aufbauen, indem sie nach Fragen suchen, um sie zu schließen. Frustrierend, dass es so oft dazu führt, dass Fragen geschlossen werden, die nicht sein sollten.
Dan Nissenbaum
Antworten:
89
Ich denke, es ist gemeint, dass Sie die GZIP-Komprimierung für Ihre CSS- und JS-Dateien aktivieren, da der Client dadurch sowohl GZIP-codierten Inhalt als auch einfachen Inhalt empfangen kann.
So geht's in apache2:
<IfModule mod_deflate.c>
#The following line is enough for .js and .css
AddOutputFilter DEFLATE js css
#The following line also enables compression by file content type, for the following list of Content-Type:s
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml
#The following lines are to avoid bugs with some browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
Und so fügen Sie den Vary Accept-EncodingHeader hinzu: [src]
Der Vary:Header gibt an, dass der für diese URL bereitgestellte Inhalt je nach Wert eines bestimmten Anforderungsheaders variiert. Hier heißt es, dass für Clients, die dies angeben Accept-Encoding: gzip, deflate( anderer Anforderungsheader), andere Inhalte bereitgestellt werden als für Clients, die diesen Header nicht senden. Der Hauptvorteil von AFAIK besteht darin, dass zwischengeschaltete Caching-Proxys wissen, dass sie aufgrund einer solchen Änderung zwei verschiedene Versionen derselben URL benötigen.
Ich fürchte, Aularon hat nicht genügend Schritte bereitgestellt, um den Vorgang abzuschließen. Mit ein wenig Versuch und Irrtum konnte ich Gzipping erfolgreich auf meinem dedizierten WHM-Server aktivieren.
Unten sind die Schritte:
Führen Sie EasyApache in WHM aus, wählen Sie in der Liste "Vollständige Optionen" die Option "Entleeren" und erstellen Sie den Server neu.
Wenn Sie fertig sind, gehen Sie zu Services Configuration >> Apache Configuration >> Include Editor >> Post VirtualHost Include, wählen Sie All Versions aus und fügen Sie den Code mod_headers.c und mod_headers.c (oben in Aularons Beitrag aufgeführt) über einem anderen in der Liste ein Eingabefeld.
Nach dem Speichern konnte ich durchschnittlich 75,36% Daten einsparen! Mit diesem HTTP-Komprimierungstool können Sie einen Test vor und nach dem Test ausführen, um Ihre eigenen Ergebnisse anzuzeigen : http://www.whatsmyip.org/http_compression/
Das hat mich verrückt gemacht, aber es scheint, dass Aularons Bearbeitung den Doppelpunkt danach fehlte "Vary". Also geändert, "Vary Accept-Encoding"um "Vary: Accept-Encoding"das Problem für mich zu beheben.
Ich hätte unter dem Beitrag kommentiert, aber es scheint nicht so, als würde es mich lassen.
Wie auch immer, ich hoffe, das erspart jemandem die gleichen Probleme, die ich hatte.
Sie müssen nicht angeben oder überprüfen, ob die Datei komprimiert ist / ist, sondern können sie bei jeder Anforderung an jede Datei senden.
Es teilt nachgeschalteten Proxys mit, wie zukünftige Anforderungsheader abgeglichen werden sollen, um zu entscheiden, ob die zwischengespeicherte Antwort verwendet werden kann, anstatt eine neue vom Ursprungsserver anzufordern.
Vary: Accept-Encoding
den Browser an, eine Version der Seite basierend auf demContent-Encoding
Header im Cache zu speichern . Sie sollten stackoverflow.com/questions/1975416/… und developer.google.com/speed/docs/best-practices/… sehens
Anforderungsheaderwerts des Clients Accept-Encoding und nicht für jede Variante des HeaderwertsContent-Encoding
der Serverantwort unterscheidet.Antworten:
Ich denke, es ist gemeint, dass Sie die GZIP-Komprimierung für Ihre CSS- und JS-Dateien aktivieren, da der Client dadurch sowohl GZIP-codierten Inhalt als auch einfachen Inhalt empfangen kann.
So geht's in apache2:
Und so fügen Sie den
Vary Accept-Encoding
Header hinzu: [src]Der
Vary:
Header gibt an, dass der für diese URL bereitgestellte Inhalt je nach Wert eines bestimmten Anforderungsheaders variiert. Hier heißt es, dass für Clients, die dies angebenAccept-Encoding: gzip, deflate
( anderer Anforderungsheader), andere Inhalte bereitgestellt werden als für Clients, die diesen Header nicht senden. Der Hauptvorteil von AFAIK besteht darin, dass zwischengeschaltete Caching-Proxys wissen, dass sie aufgrund einer solchen Änderung zwei verschiedene Versionen derselben URL benötigen.quelle
Ich fürchte, Aularon hat nicht genügend Schritte bereitgestellt, um den Vorgang abzuschließen. Mit ein wenig Versuch und Irrtum konnte ich Gzipping erfolgreich auf meinem dedizierten WHM-Server aktivieren.
Unten sind die Schritte:
Führen Sie EasyApache in WHM aus, wählen Sie in der Liste "Vollständige Optionen" die Option "Entleeren" und erstellen Sie den Server neu.
Wenn Sie fertig sind, gehen Sie zu Services Configuration >> Apache Configuration >> Include Editor >> Post VirtualHost Include, wählen Sie All Versions aus und fügen Sie den Code mod_headers.c und mod_headers.c (oben in Aularons Beitrag aufgeführt) über einem anderen in der Liste ein Eingabefeld.
Nach dem Speichern konnte ich durchschnittlich 75,36% Daten einsparen! Mit diesem HTTP-Komprimierungstool können Sie einen Test vor und nach dem Test ausführen, um Ihre eigenen Ergebnisse anzuzeigen : http://www.whatsmyip.org/http_compression/
Hoffe das funktioniert für euch alle!
quelle
Um auch Ihre Schriftdateien zu komprimieren!
wie in:
quelle
Viele Stunden, um zu klären, was das war. Bitte lesen Sie diesen Beitrag , um die erweiterten
.HTACCESS
Codes zu erhalten und zu erfahren, was sie tun.Sie können verwenden:
quelle
Das hat mich verrückt gemacht, aber es scheint, dass Aularons Bearbeitung den Doppelpunkt danach fehlte
"Vary"
. Also geändert,"Vary Accept-Encoding"
um"Vary: Accept-Encoding"
das Problem für mich zu beheben.Ich hätte unter dem Beitrag kommentiert, aber es scheint nicht so, als würde es mich lassen.
Wie auch immer, ich hoffe, das erspart jemandem die gleichen Probleme, die ich hatte.
quelle
Wenn jemand dies für die
NGINX
Konfigurationsdatei benötigt, ist hier das Snippet:quelle
Sie müssen nicht angeben oder überprüfen, ob die Datei komprimiert ist / ist, sondern können sie bei jeder Anforderung an jede Datei senden.
unset
ist es, einige Fehler in älterem GoDaddy Hosting zu beheben, optional.quelle