Właściwy typ MIME dla czcionek .woff2

279

Dzisiaj zaktualizowałem pakiet Font Awesome do 4.3.0 i zauważyłem, że dodano czcionkę woff2 . Ten plik jest połączony w CSS, więc muszę skonfigurować nginx, aby poprawnie obsługiwał pliki woff2.

Obecnie mam ten blok w konfiguracji nginx dla czcionek:

location ~* \.(otf|eot|woff|ttf)$ {
    types     {font/opentype otf;}
    types     {application/vnd.ms-fontobject eot;}
    types     {font/truetype ttf;}
    types     {application/font-woff woff;}
}

Jaki jest właściwy typ mime dla czcionek woff2?

Limon Monte
źródło
1
Oto jak buforować pliki woff2 w Apache: <IfModule mod_mime.c> AddType font/woff2 woff2i <IfModule mod_expires.c> ExpiresActive On ExpiresByType font/woff2 "access plus 1 month". (Pominięto tagi końcowe i znaki nowej linii).
Chloe

Odpowiedzi:

437

W IIS możesz zadeklarować typ MIME dla plików czcionek WOFF2, dodając następujące elementy do pliku web.config twojego projektu:

<system.webServer>
  <staticContent>
    <remove fileExtension=".woff2" />
    <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
  </staticContent>
</system.webServer>

Aktualizacja : typ MIME może się zmieniać zgodnie z najnowszą specyfikacją Draft WOFF2 edytora W3C . Patrz załącznik A: Rejestracja rodzaju mediów internetowych, sekcja 6.5. WOFF 2.0, który podaje najnowszy proponowany format tofont/woff2

Steven Anderson
źródło
6
Teraz typy MIME w IIS 10 obsługiwały .woff2. W IIS 10 nie musisz nic zmieniać w pliku web.config.
Kevin,
7
W jakim celu <remove>służy tag? Wydaje się, że nie jest to udokumentowane w odnośniku IIS ( iis.net/configreference )
Pathogen,
18
@Pathogen Czasami IIS generuje błąd, jeśli mimeMap już istnieje. Usunięcie go przed dodaniem naprawia ten błąd.
Allan
214

font/woff2

W przypadku nginx dodaj do mime.typespliku:

font/woff2 woff2;


Stara odpowiedź

Typ mima (czasami zapisywany jako typ mimetyczny) dla czcionek WOFF2 został zaproponowany jako application/font-woff2.

Ponadto, jeśli odniesiesz się do specyfikacji ( http://dev.w3.org/webfonts/WOFF2/spec/ ), zobaczysz, że font/woff2jest omawiany. Podejrzewam, że filal typ MIME dla wszystkich czcionek ostatecznie będzie bardziej logiczny font/*( font/ttf, font/woff2etc) ...

Uwaga: WOFF2 nadal ma status „Roboczej wersji roboczej” - nie został jeszcze oficjalnie przyjęty.

atwright147
źródło
38
To zostało zaktualizowane. Specyfikacja wyjaśnia to bardzo wyraźnie. Typ to font, a podtyp to woff2, co sprawia, że ​​jest font / woff2. Tego właśnie używa sama czcionka Google.
Raivo Laanemets
Nadal nie widzę nic ostatecznego w specyfikacji. Chociaż mówią o chęci wprowadzenia typu font/*najwyższego poziomu. Myślę, że w interesie pełnej informacji dodam to do mojej odpowiedzi.
atwright147
@ atwright147 typy mimów są omówione w załączniku A, dla Woff2 jest to sekcja 6.5 załącznika A.
Richard
3
Zaktualizowano w marcu 2016 r .: teraz jest rekomendacją dla kandydatów, a czcionka / woff2 to mimetype w3.org/TR/WOFF2/#IMT
Chris F Carroll
36

Apacz

W Apache możesz dodać woff2typ MIME poprzez swój .htaccessplik, zgodnie z tym linkiem .

AddType  application/font-woff2  .woff2

IIS

W IIS wystarczy dodać następujący mimeMapznacznik do web.configpliku wewnątrz staticContentznacznika.

<configuration>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
Fizzix
źródło
a co zapplication/x-font-woff2
Nerdroid
1
Hej @Moes :) Tak naprawdę application/x-font-woff2to stary typ, kiedy woff2 był bardzo nowy. W3C Spec zaleca teraz używając application/font-woff2ponieważ jest powszechnie obsługiwana. Jeśli zależy ci na kompatybilności wstecznej, możesz ją również dołączyć x-font-woff2.
Fizzix,
W usługach IIS należy zachować ostrożność, aby usunąć wszelkie wcześniej zdefiniowane wpisy rozszerzeń, jeśli są one zdefiniowane gdzie indziej na serwerze. To spowoduje bardzo mylące błędy, jeśli je napotkasz! <remove fileExtension=".woff2" />a następnie zdefiniuj jak wyżej :)
żart
Zauważ, że proponowana i najprawdopodobniej zaakceptowana jest czcionka / woff2
Syakur Rahman
1
Zalecenia W3C dla WOFF File Format 2.0 teraz zalecamy użycie font/woff2jako typ MIME, ale liście IANA oficjalnych typów mediów nie ma (jeszcze) obejmują WOFF2.
Anthony Geoghegan
17

http://dev.w3.org/webfonts/WOFF2/spec/#IMT

Wygląda na to, że w3c to zmieniło font/woff2

Widzę, że jest trochę dyskusji na temat właściwego rodzaju mima. W linku czytamy:

Ten dokument definiuje „czcionkę” typu MIME najwyższego poziomu ...

... oficjalnie zdefiniowane podtypy IANA, takie jak „application / font-woff” ...

Członkowie W3C WebFonts WG uważają, że użycie „najwyższego poziomu” typu „aplikacja” nie jest idealne.

i później

6.5. WOFF 2.0

    Type name:

        font
    Subtype name:

        woff2

Zatem propozycja W3C różni się od IANA.

Widzimy, że różni się on również od typu woff: http://dev.w3.org/webfonts/WOFF/spec/#IMT, w którym czytamy:

Type name:

    application
Subtype name:

    font-woff

który jest

application/font-woff

http://www.w3.org/TR/WOFF/#appendix-b

fantastyka
źródło
1
Nie widzę nic na tej stronie, co sugerowałoby, że zostało zmienione, font/woff2czy możesz się calrified proszę?
atwright147
Może nie rozumiem tego. Mam na myśli załącznik A „6.5. WOFF 2.0 '
fantastyczny
1
Nie mogę sobie wyobrazić, że jest to lekceważone. Specyfikacja wyjaśnia to bardzo wyraźnie. Typ to font, a podtyp to woff2, co sprawia, że ​​jest font / woff2. Tego właśnie używa sama czcionka Google.
Raivo Laanemets
2
Głosowałem za tym na początku, ale pomyślałem, że mogę z tego uzyskać post na blogu. W obecnej formie ten post jest zgodny ze specyfikacją WOFF2, ale wciąż jest to Roboczy Projekt i nie został jeszcze przeniesiony do statusu Rekomendacji . Oznacza to, że woff2 technicznie nie ma mima, ponieważ font/woff2jest nieważny, dopóki nie zostanie zatwierdzony, ale dokument specyfikacji odwołał poparcie, że nie application/font-woff2zostawiamy żadnego oficjalnego. Dlatego myślę, że w tym momencie zamierzam użyć application/font-woff2.
rtpHarry
2
@rtpHarry Wcześniej głosowałem zarówno za tą odpowiedzią, jak i za komentarzem. W lutym 2017 r. W3C opublikowało utwór Standards Track RFC 8081, tworząc font/woff2oficjalny typ mediów. Zobacz stackoverflow.com/a/43321601/1640661
Anthony Geoghegan