Nie wiem, dlaczego zostało to zamknięte, tylko dlatego, że nie obejmuje języka programowania, nie oznacza, że nie jest związane z kodowaniem.
BlueRaja - Danny Pflughoeft
@ BlueRaja-DannyPflughoeft Zgadzam się, obejrzano to ponad 65100 razy, więc myślę, że jest to dobrze wyszukiwany temat, nie wspominając o tym, że codziennie odpowiadam na pytania htaccess.
@IsmaelMiguel to faktycznie powie klientowi (i co ważniejsze, wszystkim serwerom buforującym po drodze), że plik różni się dla każdego wariantu s wartości nagłówka żądania Accept-Encoding`, a nie dla każdego Content-Encodingwariantu wartości nagłówka odpowiedzi serwera.
aularon
@ BlueRaja-DannyPflughoeft Ponieważ użytkownicy o dużej reputacji i użytkownicy poszukujący reputacji budują reputację, szukając pytań do zamknięcia. Frustrujące, że tak często prowadzi do zamykania pytań, które nie powinny.
Dan Nissenbaum
Odpowiedzi:
89
Myślę, że oznacza to włączenie kompresji gzip dla plików css i js, ponieważ umożliwi to klientowi odbieranie zarówno treści zakodowanej w gzip, jak i zwykłej zawartości.
Oto jak to zrobić w 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>
A oto jak dodać Vary Accept-Encodingnagłówek: [src]
Vary:Nagłówek mówi, że zawartość służył za tym adresem będą się różnić w zależności od wartości określonej nagłówku żądania. Tutaj jest napisane, że będzie obsługiwać inną treść dla klientów, którzy tak twierdzą Accept-Encoding: gzip, deflate(nagłówek żądania), niż treść serwowaną klientom, którzy nie wysyłają tego nagłówka. Główną zaletą tego rozwiązania, AFAIK, jest poinformowanie pośrednich proxy buforujących, że muszą mieć dwie różne wersje tego samego adresu URL z powodu takiej zmiany.
Obawiam się, że Aularon nie podał wystarczającej liczby kroków, aby zakończyć proces. Dzięki niewielkiej liczbie prób i błędów udało mi się z powodzeniem włączyć Gzipping na moim dedykowanym serwerze WHM.
Poniżej znajdują się kroki:
Uruchom EasyApache w WHM, wybierz opcję Deflate na liście Exhaustive Options i odbuduj serwer.
Po zakończeniu przejdź do konfiguracji usług >> Konfiguracja Apache >> Dołącz edytor >> Opublikuj VirtualHost Include, wybierz All Versions, a następnie wklej kod mod_headers.c i mod_headers.c (wymieniony powyżej w poście Aularona) na drugim w pole wejściowe.
Po zapisaniu widziałem średnio 75,36% oszczędności danych! Możesz uruchomić test przed i po, używając tego narzędzia kompresji HTTP, aby zobaczyć własne wyniki: http://www.whatsmyip.org/http_compression/
Doprowadzało mnie to do szału, ale wygląda na to, że po edycji aularona brakowało okrężnicy "Vary". Więc zmiana, "Vary Accept-Encoding"aby "Vary: Accept-Encoding"rozwiązać problem za mnie.
Komentowałbym pod postem, ale nie wygląda na to, żebym na to pozwolił.
W każdym razie, mam nadzieję, że to zaoszczędzi komuś tych samych kłopotów, co ja.
Nie ma potrzeby określania lub nawet sprawdzania, czy plik jest / jest skompresowany, możesz wysłać go do każdego pliku, Na każde żądanie.
Informuje podrzędne serwery proxy, jak dopasować przyszłe nagłówki żądań, aby zdecydować, czy można użyć buforowanej odpowiedzi, zamiast żądać nowej odpowiedzi z serwera pochodzenia.
Vary: Accept-Encoding
powie przeglądarce, aby zapisała w pamięci podręcznej wersję strony opartą naContent-Encoding
nagłówku. Powinieneś zobaczyć stackoverflow.com/questions/1975416/… and developers.google.com/speed/docs/best-practices/…s
wartości nagłówka żądania Accept-Encoding`, a nie dla każdegoContent-Encoding
wariantu wartości nagłówka odpowiedzi serwera.Odpowiedzi:
Myślę, że oznacza to włączenie kompresji gzip dla plików css i js, ponieważ umożliwi to klientowi odbieranie zarówno treści zakodowanej w gzip, jak i zwykłej zawartości.
Oto jak to zrobić w Apache2:
A oto jak dodać
Vary Accept-Encoding
nagłówek: [src]Vary:
Nagłówek mówi, że zawartość służył za tym adresem będą się różnić w zależności od wartości określonej nagłówku żądania. Tutaj jest napisane, że będzie obsługiwać inną treść dla klientów, którzy tak twierdząAccept-Encoding: gzip, deflate
(nagłówek żądania), niż treść serwowaną klientom, którzy nie wysyłają tego nagłówka. Główną zaletą tego rozwiązania, AFAIK, jest poinformowanie pośrednich proxy buforujących, że muszą mieć dwie różne wersje tego samego adresu URL z powodu takiej zmiany.źródło
Obawiam się, że Aularon nie podał wystarczającej liczby kroków, aby zakończyć proces. Dzięki niewielkiej liczbie prób i błędów udało mi się z powodzeniem włączyć Gzipping na moim dedykowanym serwerze WHM.
Poniżej znajdują się kroki:
Uruchom EasyApache w WHM, wybierz opcję Deflate na liście Exhaustive Options i odbuduj serwer.
Po zakończeniu przejdź do konfiguracji usług >> Konfiguracja Apache >> Dołącz edytor >> Opublikuj VirtualHost Include, wybierz All Versions, a następnie wklej kod mod_headers.c i mod_headers.c (wymieniony powyżej w poście Aularona) na drugim w pole wejściowe.
Po zapisaniu widziałem średnio 75,36% oszczędności danych! Możesz uruchomić test przed i po, używając tego narzędzia kompresji HTTP, aby zobaczyć własne wyniki: http://www.whatsmyip.org/http_compression/
Mam nadzieję, że to działa dla was wszystkich!
źródło
Aby zgzować również pliki czcionek!
jak w:
źródło
Wiele godzin spędzonych na wyjaśnieniu, co to takiego. Przeczytaj ten post, aby uzyskać zaawansowane
.HTACCESS
kody i dowiedzieć się, do czego służą.Możesz użyć:
źródło
Doprowadzało mnie to do szału, ale wygląda na to, że po edycji aularona brakowało okrężnicy
"Vary"
. Więc zmiana,"Vary Accept-Encoding"
aby"Vary: Accept-Encoding"
rozwiązać problem za mnie.Komentowałbym pod postem, ale nie wygląda na to, żebym na to pozwolił.
W każdym razie, mam nadzieję, że to zaoszczędzi komuś tych samych kłopotów, co ja.
źródło
jeśli ktoś potrzebuje tego do
NGINX
pliku konfiguracyjnego, oto fragment:źródło
Nie ma potrzeby określania lub nawet sprawdzania, czy plik jest / jest skompresowany, możesz wysłać go do każdego pliku, Na każde żądanie.
unset
to naprawić kilka błędów w starszych GoDaddy hosting, opcjonalnie.źródło