2012-02-29 14 views
7

Czy ktoś może podać przykład, jak skompresować pakiet webfont? Generator dostarczył mi ten kod ... jakie potrzeby zostały zmienione?Jak na przykład przykladac gzip @ font-face?

@font-face { 
    font-family: 'DesigersBold'; 
    src: url('desib__-webfont.eot'); 
    src: url('desib__-webfont.eot?#iefix') format('embedded-opentype'), 
     url('desib__-webfont.woff') format('woff'), 
     url('desib__-webfont.ttf') format('truetype'), 
     url('desib__-webfont.svg#DesigersBold') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

Odpowiedz

9

Czy używasz Apache i masz dostęp do httpd.conf? Jeśli tak, czy włączona jest już kompresja gzip?

Możesz zajrzeć na tej linii:

AddOutputFilterByType DEFLATE 

Albo

SetOutputFilter DEFLATE 

Jeśli jest to pierwsze, powinieneś być w stanie dodać następujące typy MIME tak dyrektywy i parametry wyglądają jak jeden poniżej. Podane tutaj typy MIME to: .EOT, .TTF i .SVG. Wyciągnąłem je z pliku mime.types w moim folderze conf Apache. Wydaje mi się, że .WOFF jest już skompresowana, więc nie musisz go zgrzewać.

AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf image/svg+xml 

Ta ostatnia dyrektywa SetOutputFilter kompresuje wszystkie pliki wewnątrz pojemnika jest powiedziane. Jeśli ta lokalizacja zawiera pliki czcionek, powinny one być już skompresowane przy dostawie do klienta.

+0

Mój serwer używa Apache, ale nie mam dostępu do httpd.conf, ponieważ jestem na współdzielonym hostingu. Czy istnieje alternatywa? –

+3

Możesz użyć/stworzyć plik .htaccess i sprawdzić, czy mod_deflate jest włączony na twoim serwerze. Możesz spróbować wkleić do niego i sprawdzić za pomocą nagłówków HTTP, czy zawartość jest zapakowana w gzip. 'AddOutputFilterByType DEFLATE tekst/tekst tekst/tekst html/zwykły tekst/tekst xml/aplikacja css/aplikacja x javascript/javascript' – waynethec

+0

@waynethec Jeśli dyrektywy AddOutputFilterByType lub SetOutputFilter nie znajdują się już w pliku httpd.conf, gdzie można go dodać? Czy możemy dodać go w dowolnym miejscu, czy też musimy uważać na to, gdzie go umieszczamy? – user961627

0

wysłać kilka parametry (fałszywe), serwer będzie traktować te odpowiedzi jako text/plain, i po prostu ścisnąć jako text/plain jeśli DEFLATE jest ustawiony na text/plain.

@font-face { 
    font-family: 'DesigersBold'; 
    src: url('desib__-webfont.eot?v=1'); 
    src: url('desib__-webfont.eot?v=1#iefix') format('embedded-opentype'), 
     url('desib__-webfont.woff?v=1') format('woff'), 
     url('desib__-webfont.ttf?v=1') format('truetype'), 
     url('desib__-webfont.svg?v=1#DesigersBold') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

Po prostu działa dobrze!