Type MIME approprié pour les polices

249

En recherchant sur le Web, je trouve des tas de suggestions différentes sur le type MIME approprié pour une police, mais je n'ai pas encore essayé de type MIME qui me débarrasse d'un avertissement Chrome tel que le suivant:

Ressource interprétée comme police mais transférée avec le type MIME font / otf

La police est un OTF.

J'ai essayé les types MIME suivants jusqu'à présent

  • font / otf
  • application / font-otf
  • application / police
  • application / otf
  • application / octet-stream
  • application / x-font-otf
  • application / x-font-TrueType (je sais que ce n'est pas vrai, mais une source l'a cité pour OTF)
David Hedlund
la source
3
Comment écrivez-vous réellement l'en-tête pour cela? Je ne sais pas trop quoi faire. Bravo pour toute aide que vous pouvez apporter.
Josh Smith
1
@Josh: si vous servez la police via du code, vous voulez définir l'en-tête "content-type" sur "font / opentype" (si vous utilisez un OTF comme dans ma question), mais si vous êtes simplement pointant vers un fichier de police physique, il peut être plus facile de définir les types MIME sur votre serveur Web. Je ne sais pas quel serveur Web vous utilisez, alors faites une recherche Google pour vos types de serveur + mime ou commencez une nouvelle question sur SO décrivant votre problème.
David Hedlund
2
Le titre est faux. Il devrait s'agir de l'avertissement "Comment désactiver la" ressource interprétée comme police "dans Chrome
djsadinoff
2
@djs: accordé! Vous savez, si je pouvais trouver un moyen de faire en sorte que Chrome se souvienne que je veux que ma console répertorie les messages de journal et les erreurs, mais pas les avertissements, il y a de fortes chances que je n'aurais jamais posé cette question en premier lieu.
David Hedlund
Chrome nous avertit qu'il fait ce que nous lui avons demandé. Je préfère voir un avertissement quand il a réussi à trouver les bitmaps à utiliser pour les glyphes si vous avez utilisé @ font-face avec un fichier .BMP!
l'homme de l'espace de cardiff

Réponses:

137

Essayez d'utiliser "font / opentype".

spd
la source
51
C'est un type de mime illégal cependant: il n'y a pas de "police /" dans les mimetypes officiels. Un meilleur type MIME serait "application / x-font-opentype" ou "application / octet-stream". Le premier est essentiellement "un type de mime non enregistré avec ce nom", le second est simplement "des données binaires"
dtech
Cela ne fonctionne pas pour moi sur Chrome 16. Celui qui a fonctionné était: application / vnd.oasis.opendocument.formula-template.
jayarjo
16
On dirait que le gagnant actuel est: application / x-font-woff - j'espère que ça aide!
Bustished
7
@busticated cela a été changé en application / font-woff voir w3.org/TR/WOFF/#appendix-b
Holger
5
fontle type est maintenant officiel iana.org/assignments/media-types/media-types.xhtml#font
mems
210

Il existe un certain nombre de formats de police pour lesquels on peut définir des types MIME, sur les serveurs Apache et IIS. J'ai toujours eu de la chance avec les éléments suivants:

svg   as "image/svg+xml"                  (W3C: August 2011)
ttf   as "application/x-font-ttf"         (IANA: March 2013)
      or "application/x-font-truetype"
otf   as "application/x-font-opentype"    (IANA: March 2013)
woff  as "application/font-woff"          (IANA: January 2013)
woff2 as "application/font-woff2"         (W3C W./E.Draft: May 2014/March 2016)
eot   as "application/vnd.ms-fontobject"  (IANA: December 2005)
sfnt  as "application/font-sfnt"          (IANA: March 2013) 

Selon l'Internet Engineering Task Force qui maintient le document initial concernant les extensions de messagerie Internet polyvalentes (types MIME) ici: http://tools.ietf.org/html/rfc2045#section-5 ... il dit en détail:

" On s'attend à ce que des ajouts à l'ensemble plus large de types pris en charge puissent généralement être réalisés par la création de nouveaux sous-types de ces types initiaux. . Si un autre type de niveau supérieur doit être utilisé pour une raison quelconque, il faut lui attribuer un nom commençant par "X-" pour indiquer son statut non standard et éviter un conflit potentiel avec un futur nom officiel. "

Pour ainsi dire, et au fil du temps, des types MIME supplémentaires sont ajoutés à mesure que les normes sont créées et acceptées, nous voyons donc des exemples de types MIME spécifiques au fournisseur tels que vnd.ms-fontobject et similaires.

MISE À JOUR 16 août 2013: WOFF a été officiellement enregistré à l'IANA le 3 janvier 2013 et Webkit a été mis à jour le 5 mars 2013 et les navigateurs qui fournissent cette mise à jour dans leurs dernières versions commenceront à émettre des avertissements sur les types MIME de serveur avec l'ancien Déclaration x-font-woff. Étant donné que les avertissements ne sont que gênants, je recommanderais de passer immédiatement au type MIME approuvé. Dans un monde idéal, les avertissements se résoudront à temps.

MISE À JOUR 26 février 2015: WOFF2 est maintenant dans le brouillon de l'éditeur du W3C avec le type mime proposé. Il devrait probablement être soumis à l'IANA au cours de la prochaine année (peut-être d'ici la fin de 2016) en suivant des calendriers de progrès plus récents. De même, SFNT, le format de police de conteneur évolutif / spline utilisé dans la référence de table de base de Google Web Fonts avec leur bibliothèque java sfntly et est déjà enregistré en tant que type MIME avec IANA et pourrait être ajouté à cette liste en fonction des besoins individuels.

MISE À JOUR 4 octobre 2017: Nous pouvons suivre la progression du format WOFF2 ici avec une majorité de navigateurs modernes prenant en charge le format avec succès. De plus, nous pouvons suivre le traqueur de demande de commentaires de type de média de premier niveau "font" de l'IETF et le document concernant le dernier ensemble de types de polices proposés pour approbation.


Pour ceux qui souhaitent intégrer la police de caractères dans le bon ordre dans votre CSS, veuillez visiter cet article . Mais encore une fois, j'ai eu de la chance avec l'ordre suivant:

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

Pour les propriétés automatiques de Subversion, celles-ci peuvent être répertoriées comme:

# Font formats
svg   = svn:mime-type=image/svg+xml
ttf   = svn:mime-type=application/x-font-ttf
otf   = svn:mime-type=application/x-font-opentype
woff  = svn:mime-type=application/font-woff
woff2 = svn:mime-type=application/font-woff2
eot   = svn:mime-type=application/vnd.ms-fontobject
sfnt  = svn:mime-type=application/font-sfnt
Mike Kormendy
la source
Bien, merci. J'ai eu des messages d'erreur avec .woff et cela l'a corrigé dans mon fichier .htaccess. J'ai utiliséAddType application/x-font-woff
Danny Englander
application / x-font-opentype et application / x-font-ttf fonctionnent parfaitement pour Linux Gnome Shell
Schmoove
1
Les ttf, otf et woff2 sont obsolètes. Voir stackoverflow.com/a/20723357/1356047
Jonas Berlin
126

Ignorez l'avertissement de chrome. Il n'y a pas de type MIME standard pour les polices OTF.

font / opentype peut faire taire l'avertissement, mais cela n'en fait pas la «bonne» chose à faire.

Il vaut sans doute mieux en inventer un, par exemple avec "application / x-opentype" car au moins "application" est un type de contenu enregistré, tandis que "font" ne l'est pas.

Mise à jour: OTF reste un problème, mais WOFF a développé un type d' application IANA MIME / font-woff en janvier 2013.

Mise à jour 2: OTF a développé un type MIME: application / font-sfnt en mars 2013. Ce type s'applique également à .ttf

djsadinoff
la source
2
Intéressant. Avez-vous des références à l'appui de cela?
Kzqai
18
Il n'y a aucun type MIME: "Remarque: Puisqu'il n'y a aucun type MIME défini pour les polices TrueType, OpenType et WOFF, le type MIME du fichier spécifié n'est pas pris en compte." developer.mozilla.org/en/css/@font-face . Ne créez pas de nouveaux types MIME de niveau supérieur, utilisez plutôt x-: tools.ietf.org/html/rfc2045#section-5 - djsadinoff il y a 3 minutes de modification
djsadinoff
@djsadinoff Je crois que l'IANA remplace l'IETF. L'IETF soumet des brouillons à l'IANA , et puisque l'IANA signale que woff est un type MIME, IETF est remplacé dans sa liste limitée.
Mike Kormendy
@MikeKormendy, je ne comprends pas votre commentaire, mais vous avez peut-être fait référence à une version précédente de ma réponse qui ne concerne que WOFF. J'ai restauré l'original
djsadinoff
@djsadinoff C'est étrange, l'échange de pile a dit que vous veniez de commenter "il y a 3 minutes".
Mike Kormendy
85

Depuis février 2017, la RFC 8081 regroupe tous les types MIME pour les polices sous le fonttype de média de niveau supérieur . Les anciens types MIME de ma publication d'origine sont désormais répertoriés comme obsolètes.

Les types de polices répertoriés par l'IANA sont désormais:

Les autres formats de police non standard restent tels quels:


[Message original obsolète]

Comme il y a encore beaucoup de confusion sur le Web à propos des types MIME pour les polices Web, j'ai pensé donner une réponse actuelle, avec des dates effectives et des liens de support vers l' IANA et le W3C.

Voici les types MIME officiels pour les polices Web:

Notez qu'il y a un mouvement pour changer tout ce qui précède en types MIME font/XXX, comme soutenu par le W3C dans sa proposition pour WOFF v2. Ceci est suivi par l'Internet Engineering Task Force (IETF) sous le type de niveau supérieur de police et en février 2017, le statut RFC a été approuvé (voir RFC 8081 ), donc tout peut encore changer!

Sur le sujet des serveurs Web, il convient de mentionner que les réponses HTTP peuvent gzip(ou autrement compresser) tous les formats de police ci-dessus, sauf .woff&.woff2 qui sont déjà fortement comprimés.

J'en dis plus dans les types MIME pour les polices Web avec (Fantom) BedSheet .

Steve Eynon
la source
2
Les messages en double sont automatiquement détectés sur SO, et vous risquez de faire supprimer les deux messages. Si vous avez des informations utiles à publier, vous devriez envisager de poser et de répondre à votre propre question.
Borodin
Ack! J'ai été rattrapé! Ouais, j'étais paresseux. : / J'ai mis à jour l'autre réponse afin qu'elle soit plus pertinente par rapport à sa question connexe. Je pense que c'est toujours un bon ajustement pour cette page.
Steve Eynon
Il y a énormément de réponses discutables à évaluer. J'essaie de faire un commentaire sur ceux que je note, mais le plus souvent, vos réponses disparaissent. Veuillez essayer de rester d'actualité.
Borodin
@SteveEynon: Opera basé sur Presto ne rend pas les polices served servies avec un type de mime d'image.
user2284570
12

En tant qu'instance spécifique de l'une des deux choses difficiles de l'informatique, il est intéressant de voir comment les réponses à cette question ont changé depuis que cette question a été initialement publiée. Heureusement, les pouvoirs en place ont mis de l'ordre dans le chaos:


En février de cette année (2017), le W3C a publié Standards Track RFC 8081: le type de média de premier niveau "font" qui simplifie considérablement les types de média appropriés pour les fichiers de polices:

Cette note sert à enregistrer et à documenter le type de média de niveau supérieur "police", sous lequel les sous-types de formats de représentation pour les polices peuvent être enregistrés. Ce document sert également de demande d'enregistrement pour un ensemble de sous-types prévus, qui sont représentatifs de certains sous-types existants déjà utilisés, et actuellement enregistrés sous l'arborescence "application" par leurs enregistrements séparés.

C'est un document assez lisible et il décrit le contexte historique (absence «d'enregistrement des formats de police» ) qui a donné lieu à un mélange confus de types et sous-types de supports. Avec l'augmentation (relativement) récente de la popularité des polices Web téléchargeables, le W3C a reconnu la nécessité d'un «type de police de premier niveau intuitif» . Ce qu'ils ont trouvé c'est… font.

En conséquence, l'IANA a depuis mis à jour sa liste officielle des types de médias avec le fonttype de média et tous ses sous-types qu'ils reconnaissent actuellement:

collection  font/collection
otf     font/otf
sfnt    font/sfnt
ttf     font/ttf
woff    font/woff
woff2   font/woff2

Espérons que c'est la dernière réponse à cette question.

Anthony Geoghegan
la source
2
Anthony, c'est une autre excellente ressource en plus de mon message. Merci d'avoir partagé ceci ici!
Mike Kormendy
7

Voici la solution NGINX

fichier

/usr/local/nginx/conf/mime.types

ajouter

font/ttf                      ttf;
font/opentype                 otf;
application/font-woff         woff2;
application/font-woff         woff;
application/vnd.ms-fontobject eot;

retirer

application/octet-stream        eot;

Merci à Mike Fulcher

http://drawingablank.me/blog/font-mime-types-in-nginx.html

BG Bruno
la source
6

FWIW concernant Apache 2.2 VirtualHosting et mod_mime testés sur Debian Linux et OS X Leopard et Snow Leopard:

Si vous avez une configuration VirtualHost, vous souhaiterez ajouter les types via la directive AddType comme suit au moins au bas de la configuration comme suit:

....
   AddType font/opentype .otf
   AddType font/ttf .ttf
</VirtualHost>

Testé contre Chrome Unstable / Trunk et Safari WebKit Nightly, ce qui élimine les avertissements de flux d'octets MIME pour les types de police ttf et otf.

Remarque: .htaccess n'a aucun effet lorsqu'il s'agit de VirtualHosting. Si vous développez pour plusieurs sites, vous utiliserez le développement VirtualHosting et chaque configuration aura besoin de ces ajouts AddType.

Marc J. Driftmeyer
la source
6

Je viens de faire quelques recherches sur la liste officielle de l'IANA . Je crois que la réponse donnée ici 'font / xxx' est incorrecte car il n'y a pas de type 'font' dans la norme MIME.

Sur la base des RFC et de l'IANA, cela semble être l'état actuel du jeu en mai 2013:

Ces trois sont officiels et attribués par l'IANA:

  • svg comme "image / svg + xml"
  • woff comme "application / font-woff"
  • eot comme "application / vnd.ms-fontobject"

Ceux-ci ne sont pas officiels / attribués et doivent donc utiliser la syntaxe 'x-':

  • ttf comme "application / x-font-ttf"
  • otf comme "application / x-font-opentype"

L'application / font-woff semble nouvelle et peut-être seulement officielle depuis janvier 2013. Ainsi, "application / x-font-woff" pourrait être plus sûr / plus compatible à court terme.

Aaron
la source
5

Depuis mars 2013, IANA.ORG recommande pour .otf :
application/font-sfnt

Autres polices:

.eot  ->  application/vnd.ms-fontobject (as from December 2005)
.otf  ->  application/font-sfnt         (as from March 2013)
.svg  ->  image/svg+xml                 (as from August 2011)
.ttf  ->  application/font-sfnt         (as from March 2013)
.woff ->  application/font-woff         (as from January 2013)

Voir plus ...

Serge
la source
2

Les éléments suivants peuvent être utilisés dans l'espace eBook:

application/vnd.ms-opentype

J'imagine que c'est la même chose pour le web.

Arktype
la source
2

Depuis février 2017, la RFC 8081 ajoute des types de médias font / *, qui sont également répertoriés dans la liste des types de médias IANA . font/otfest dans cette liste.

George Helyar
la source
1

Peut-être que cela aidera quelqu'un. J'ai vu que sur IIS 7 .ttfest déjà un type MIME connu. Il est configuré comme:

application/octet-stream

Donc , je viens d' ajouter que , pour tous les types de polices CSS ( .oet, .svg, .ttf,.woff ) et IIS commencé à les servir. Les outils de développement Chrome ne se plaignent pas non plus de réinterpréter le type.

À la vôtre, Michael

Michael Kennedy
la source
1
application/octet-streamest moins un "type connu" et plus un "groupe générique d'octets". :) Le navigateur se plaint d'être servi de ce type, car il ne contient aucune information sur la façon dont les choses doivent être interprétées.
cHao
-1

Une façon de désactiver cet avertissement de Chrome serait de mettre à jour Chrome, puis de vous assurer que votre type MIME est l'un de ceux-ci:

 "font/ttf"
 "font/opentype"
 "application/font-woff"
 "application/x-font-type1"
 "application/x-font-ttf"
 "application/x-truetype-font"

Cette liste est conforme au correctif trouvé sur le bogue 111418 sur webkit.org .

Le même patch rétrograde le message d'un "avertissement" à un "journal", donc la simple mise à niveau de Chrome vers n'importe quelle version post-mars 2013 éliminerait le triangle jaune.

Étant donné que la question concerne la désactivation d'un avertissement Chrome et que les gens peuvent conserver les anciennes versions de Chrome pour quelque raison que ce soit, j'ai pensé que cela valait la peine d'être ajouté.

homme de l'espace cardiff
la source