MIME-Typ für WOFF-Schriftarten?

556

Als welcher MIME-Typ sollten WOFF-Schriftarten bereitgestellt werden?

Ich verwende TrueType-Schriftarten (ttf) als font/truetypeund Opentype- Schriftarten (otf) als font/opentype, aber ich kann das richtige Format für WOFF-Schriftarten nicht finden.

Ich habe es versucht font/woff, font/webopenund font/webopentype, aber Chrome beschwert sich immer noch:

"Ressource als Schriftart interpretiert, aber mit Anwendung / Oktett-Stream vom Typ MIME übertragen."

Weiß jemand Bescheid?

Nico Burns
quelle
1
Es gibt also keine Möglichkeit, Chrome davon abzuhalten, sich zu beschweren?
John Mee
1
Hier ist die Node.js / Meteor-Lösung: npm install mime
Eric Leroy
Beachten Sie auch die andere Konfiguration, die mein Problem in IIS stackoverflow.com/questions/12458444/…
Iman
1
font/woffist jetzt der richtige MIME-Typ für woff und Chrome beschwert sich nicht.
Mikael Dúi Bolinder

Antworten:

737

Update von Keith Shaws Kommentar am 22. Juni 2017:

Ab Februar 2017 ist RFC8081 der vorgeschlagene Standard. Es definiert einen Medientyp der obersten Ebene für Schriftarten, daher lautet der Standardmedientyp für WOFF und WOFF2 wie folgt:

font/woff

font/woff2


Im Januar 2011 wurde bekannt gegeben, dass Chromium in der Zwischenzeit erkennen wird

application/x-font-woff

als Pantomime für WOFF. Ich weiß, dass diese Änderung jetzt in Chrome Beta ist und wenn sie noch nicht stabil ist, sollte sie nicht zu weit entfernt sein.

Marcel
quelle
8
Ab Chromium 18.0, 30.08.2012, muss application / x-font-woff
cc young
6
Wie cc young sagte, müssen Sie "application / x-font-woff" verwenden, um die Chrome-Warnung "Ressource als Schriftart interpretiert, aber mit MIME-Typ application / font-woff übertragen" zu entfernen
Jamie
9
Chrome Version 24.0.1312.52 scheint weiterhin mit der Meldung "Ressource als Schriftart interpretiert, aber übertragen ..." zu antworten, wenn Sie application / font-woff verwenden. Scheint noch "application / x-font-woff" zu verwenden.
Nicholi
4
Gemäß dem folgenden Webkit-Commit font/woffund application/x-font-woffwird zugunsten von entfernt application/font-woff. Außerdem wurde die Warnung auf eine Protokollnachricht herabgestuft. trac.webkit.org/changeset/144763/trunk/Source/WebCore/inspector/…
Jorrit Schippers
6
Was ist mit dem neuen .woff2?
Der Muffin-Mann
135

Für mich hat der nächste in einer .htaccess-Datei gearbeitet.

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
AddType font/woff2 .woff2   
Joiggama
quelle
2
Ich kann nicht glauben, dass mehr Leute dies nicht hilfreich fanden. Dies ist der einzige, der für mich gearbeitet hat.
Tim Joyce
4
Zum Zeitpunkt der Beantwortung dieser Frage funktionierte 'font / woff' nicht . Kann jemand bestätigen, dass dies jetzt der Fall ist?
Nico Burns
5
In IIS Express können Sie web.config unter configuration / system.webServer / staticContent ein mimeMap- Element hinzufügen:<mimeMap fileExtension=".woff" mimeType="font/woff" />
shovavnik
6
Ab Chrome 18 funktioniert es nicht mehr. jetzt scheint application / x-font-woff zu funktionieren.
CC junge
4
Für die Aufzeichnung verwendet Google Fonts font/woffund font/woff2.
DisgruntledGoat
55

Es wird sein application/font-woff.

siehe http://www.w3.org/TR/WOFF/#appendix-b (W3C-Kandidatenempfehlung 04. August 2011)

und http://www.w3.org/2002/06/registering-mediatype.html

Aus Mozilla CSS Font-Face-Notizen

In Gecko unterliegen Web-Schriftarten derselben Domänenbeschränkung (Schriftdateien müssen sich in derselben Domäne befinden wie die Seite, auf der sie verwendet werden), es sei denn, HTTP-Zugriffskontrollen werden verwendet, um diese Einschränkung zu lockern. Hinweis: Da für TrueType-, OpenType- und WOFF-Schriftarten keine MIME-Typen definiert sind, wird der MIME-Typ der angegebenen Datei nicht berücksichtigt.

Quelle: https://developer.mozilla.org/en/CSS/@font-face#Notes

jflaflamme
quelle
3
Aber wie Marcel später darauf hingewiesen hat, erkennt Chromium application / x-font-woff gemäß RFC 2048, bis application / font-woff akzeptiert wird.
Jflaflamme
2
Die WOFF-Spezifikation ist jetzt eine Empfehlung und ändert sich nicht von application / font-woff w3.org/TR/WOFF/#appendix-b
Steve Workman
26

Referenz zum Hinzufügen von Schriftart-MIME-Typen zu .NET / IIS

über web.config

<system.webServer>
  <staticContent>
     <!-- remove first in case they are defined in IIS already, which would cause a runtime error -->
     <remove fileExtension=".woff" />
     <remove fileExtension=".woff2" />
     <mimeMap fileExtension=".woff" mimeType="font/woff" />
     <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
  </staticContent>
</system.webServer>

über IIS Manager

Screenshot des Hinzufügens von Woff-MIME-Typen zu IIS

JeremyWeir
quelle
19

Ab Februar 2017 ist RFC8081 der vorgeschlagene Standard. Es definiert einen Medientyp der obersten Ebene für Schriftarten, daher lautet der Standardmedientyp für WOFF und WOFF2 wie folgt:

font/woff
font/woff2
Keith Shaw
quelle
10

Hinweis: Diese Antwort war zu diesem Zeitpunkt korrekt, wurde jedoch 2017 veraltet, als RFC 8081 veröffentlicht wurde

Es gibt keinen fontMIME-Typ! Somit font/xxxist IMMER falsch.

K. Rice
quelle
@UmarFarooqKhawaja Diese Antwort ist unvollständig, aber nicht falsch. Das einzige, was sich zwischen dieser Antwort und Ihrem Kommentar geändert application/font-woffhat, wurde dem Standard hinzugefügt und ersetzt Dinge wie application/x-font-woff(die tatsächliche Aktualisierung der Software in der Praxis ist eine andere Sache). Nichts hat Madey-Uppey-Inhaltstypen des Formulars font/xxxgültig gemacht.
Jon Hanna
5

Fügen Sie Ihrem .htaccess Folgendes hinzu

AddType font/woff woff

Viel Glück

Nick321
quelle
4

@Nico ,

Derzeit gibt es keinen definierten Standard für den Mimetyp woff font. Ich verwende einen CDN-Dienst für die Schriftzustellung, der Schriftart / Woff verwendet, und ich erhalte die gleiche Warnung in Chrome.

Referenz: Die Internet Assigned Numbers Authority

Chris_O
quelle
2

Ich weiß, dass dieser Beitrag etwas alt ist, aber nachdem ich viele Stunden damit verbracht hatte, die Schriftarten auf meinem lokalen Nginx-Computer zum Laufen zu bringen und eine Menge Lösungen auszuprobieren, bekam ich endlich die, die für mich wie ein Zauber funktionierte.

location ~* \.(eot|otf|ttf|woff|woff2)$ {
    add_header Access-Control-Allow-Origin *;
}

In die Klammer können Sie die Erweiterungen Ihrer Schriftarten oder allgemein die Dateien einfügen, die Sie laden möchten. Zum Beispiel habe ich es auch für Schriftarten und Bilder (PNG, JPG usw. usw.) verwendet. Seien Sie also nicht verwirrt, dass diese Lösung nur für Schriftarten gilt.

Legen Sie es einfach in Ihre Nginx-Konfigurationsdatei, starten Sie es neu und ich hoffe, es funktioniert auch für Sie!

pr1nc3
quelle
1

Vielleicht hilft das jemandem. Ich habe gesehen, dass auf IIS 7 .ttfbereits ein MIME-Typ bekannt ist. Es ist konfiguriert als:

application/octet-stream

Also habe ich nur noch, dass für alle die CSS Schrifttypen ( .oet, .svg, .ttf, .woff) und IIS begann , sie dienen. Chrome-Entwicklungstools beschweren sich auch nicht über eine Neuinterpretation des Typs.

Prost, Michael

Michael Kennedy
quelle
8
'application / octet-stream' ist das Webserver-Äquivalent zu "Ich weiß nicht, was das ist".
Synchro
1
Ja, ich weiß. Der entscheidende Punkt war jedoch, dass es funktionierte, während viele der spezifischeren Optionen nicht dazu führten, dass die Schriftarten über IIS7 verwendet wurden. Mein Kommentar war pragmatischer als der Versuch, der Richtigste zu sein (weil das nicht funktionierte).
Michael Kennedy
1

Für alle Solution index.php entfernen Sie Formular-URL und Woff-Datei erlaubt. Schreiben Sie den folgenden Code in die .htaccess-Datei und wechseln Sie zu Ihrer application / config / config.php-Datei: $ config ['index_page'] = '';

Nur für Linux-Hosting-Server. Details zur .htaccess-Datei

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>
Hussy Borad
quelle
0

IIS hat .ttf automatisch als Anwendung / Oktett-Stream definiert, was anscheinend einwandfrei funktioniert, und Fontshop empfiehlt, .woff als Anwendung / Oktett-Stream zu definieren

Nadelzahn
quelle
0

WOFF:

  1. Web Open-Schriftformat
  2. Es kann entweder mit TrueType- oder PostScript-Konturen (CFF) kompiliert werden
  3. Es wird derzeit von FireFox 3.6+ unterstützt

Versuchen Sie das hinzuzufügen:

AddType application/vnd.ms-fontobject .eot
AddType application/octet-stream .otf .ttf
Adalarasan Sachithanantham
quelle
-1

Ich hatte das gleiche Problem, Schriftart / Opentyp funktionierte für mich

oshimin
quelle
OpenType ist nichts für woff?
Mikael Dúi Bolinder
-1

Der MIME-Typ ist möglicherweise nicht Ihr einziges Problem. Wenn die Schriftartdatei in S3 oder einer anderen Domäne gehostet wird, besteht möglicherweise zusätzlich das Problem, dass Firefox keine Schriftarten aus verschiedenen Domänen lädt. Mit Apache ist dies eine einfache Lösung, aber in Nginx habe ich gelesen, dass Sie Ihre Schriftdateien möglicherweise in Base-64 codieren und direkt in Ihre CSS-Datei für Schriftarten einbetten müssen.

Ringo
quelle