Type MIME pour les polices WOFF?

556

Quel type de mime les polices WOFF doivent-elles être utilisées?

Je sers les polices truetype (ttf) as font/truetypeet opentype (otf) as font/opentype, mais je ne trouve pas le format correct pour les polices WOFF.

Je l' ai essayé font/woff, font/webopenet font/webopentype, mais Chrome se plaint toujours:

"Ressource interprétée comme une police mais transférée avec une application de type MIME / octet-stream."

Quelqu'un le sait?

Nico Burns
la source
1
Il n'y a donc aucun moyen d'empêcher Chrome de se plaindre?
John Mee
1
Voici la solution Node.js / Meteor: npm install mime
Eric Leroy
notez également l'autre configuration qui a enfin résolu mon problème dans IIS stackoverflow.com/questions/12458444/…
Iman
1
font/woffest désormais le type MIME correct pour woff et Chrome ne se plaint pas.
Mikael Dúi Bolinder

Réponses:

737

Mise à jour du commentaire de Keith Shaw le 22 juin 2017:

Depuis février 2017, la RFC8081 est la norme proposée. Il définit un type de média de niveau supérieur pour les polices, par conséquent, le type de média standard pour WOFF et WOFF2 est le suivant:

font/woff

font/woff2


En janvier 2011, il a été annoncé qu'entre-temps, Chromium reconnaîtra

application/x-font-woff

comme type mime pour WOFF. Je sais que ce changement est maintenant en version bêta de Chrome et s'il n'est pas encore stable, il ne devrait pas être trop loin.

Marcel
la source
8
à partir de Chromium 18.0, 2012/08/30, besoin d'utiliser application / x-font-woff
cc young
6
Comme l'a dit cc young, pour se débarrasser de l'avertissement Chrome "Ressource interprétée comme police mais transférée avec le type d'application MIME / font-woff", vous devez utiliser "application / x-font-woff"
Jamie
9
La version 24.0.1312.52 de Chrome semble toujours répondre avec la "ressource interprétée comme police mais transférée ..." si vous utilisez application / font-woff. Il semble toujours nécessaire d'utiliser "application / x-font-woff" pour l'instant.
Nicholi
4
Selon l'engagement Webkit suivant, font/woffet application/x-font-woffsera supprimé en faveur de application/font-woff. De plus, l'avertissement a été rétrogradé en message de journal. trac.webkit.org/changeset/144763/trunk/Source/WebCore/inspector/…
Jorrit Schippers
6
Et le nouveau .woff2?
The Muffin Man du
135

Pour moi, le suivant a été dans un fichier .htaccess.

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
AddType font/woff2 .woff2   
joiggama
la source
2
Je ne peux pas croire que plus de gens n'aient pas trouvé cela utile. C'est le seul qui a fonctionné pour moi.
Tim Joyce
4
Au moment de poser cette question, 'font / woff' ne fonctionnait pas . Quelqu'un peut-il confirmer que c'est le cas maintenant?
Nico Burns
5
Dans IIS Express, vous pouvez ajouter un élément mimeMap à web.config sous configuration / system.webServer / staticContent:<mimeMap fileExtension=".woff" mimeType="font/woff" />
shovavnik
6
à partir de Chrome 18, a cessé de fonctionner. maintenant, l'application / x-font-woff semble fonctionner.
cc jeune
4
Pour mémoire, Google Fonts utilise font/woffet font/woff2.
DisgruntledGoat
55

Ce sera application/font-woff.

voir http://www.w3.org/TR/WOFF/#appendix-b (Recommandation du candidat W3C 04 août 2011)

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

De Mozilla css font-face notes

Dans Gecko, les polices Web sont soumises à la même restriction de domaine (les fichiers de polices doivent se trouver sur le même domaine que la page qui les utilise), à ​​moins que des contrôles d'accès HTTP ne soient utilisés pour assouplir cette restriction. Remarque: Étant donné qu'il n'existe 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.

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

jflaflamme
la source
3
Mais comme l'a souligné Marcel après, Chromium reconnaîtra application / x-font-woff selon la RFC 2048 jusqu'à ce que application / font-woff soit accepté.
jflaflamme
2
La spécification WOFF est maintenant une recommandation et ne changera pas de application / font-woff w3.org/TR/WOFF/#appendix-b
Steve Workman
26

Référence pour l'ajout de types MIME de polices à .NET / IIS

via 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>

via IIS Manager

capture d'écran de l'ajout de types MIME Woff à IIS

JeremyWeir
la source
19

Depuis février 2017, la RFC8081 est la norme proposée. Il définit un type de média de niveau supérieur pour les polices, par conséquent, le type de média standard pour WOFF et WOFF2 est le suivant:

font/woff
font/woff2
Keith Shaw
la source
10

Remarque: Cette réponse était correcte à l'époque mais est devenue obsolète en 2017 lorsque la RFC 8081 a été publiée

Il n'y a pas de fonttype MIME! Ainsi, font/xxxest TOUJOURS faux.

K. Rice
la source
@UmarFarooqKhawaja cette réponse est incomplète, mais pas fausse. La seule chose qui a changé entre cette réponse et votre commentaire a application/font-woffété ajoutée à la norme, remplaçant des choses telles que application/x-font-woff(la mise à jour réelle du logiciel dans la pratique est une autre affaire). Rien n'a rendu valides les types de contenu du formulaire font/xxx.
Jon Hanna
5

Ajoutez ce qui suit à votre .htaccess

AddType font/woff woff

bonne chance

Nick321
la source
4

@Nico ,

Il n'existe actuellement aucune norme définie pour le type mime de police woff. J'utilise un service cdn de livraison de polices et il utilise font / woff et j'obtiens le même avertissement en chrome.

Référence: Internet Assigned Numbers Authority

Chris_O
la source
2

Je sais que ce message est un peu ancien mais après avoir passé de nombreuses heures à essayer de faire fonctionner les polices sur ma machine locale nginx et à essayer des tonnes de solutions, j'ai finalement trouvé celle qui fonctionnait pour moi comme un charme.

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

À l'intérieur des parenthèses, vous pouvez mettre les extensions de vos polices ou généralement les fichiers que vous souhaitez charger. Par exemple, je l'ai utilisé pour les polices et pour les images (png, jpg, etc.), alors ne vous trompez pas que cette solution ne s'applique qu'aux polices.

Mettez-le simplement dans votre fichier de configuration nginx, redémarrez et j'espère que cela fonctionne aussi pour vous!

pr1nc3
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
8
'application / octet-stream' est l'équivalent du serveur Web de dire "je ne sais pas ce que c'est".
Synchro
1
Oui je sais. Mais le point clé était que cela fonctionnait alors que la plupart des options plus spécifiques ne semblaient pas entraîner l'utilisation des polices sur IIS7. Mon commentaire était plus pragmatique que d'essayer d'être le plus correct (car cela ne fonctionnait pas).
Michael Kennedy
1

Pour toutes les solutions index.php, supprimez l'url du formulaire et le fichier woff autorisés. pour écrire le code ci-dessous dans le fichier .htaccess et faire cette alternance dans votre fichier application / config / config.php: $ config ['index_page'] = '';

Pour serveur d'hébergement Linux uniquement. Détails du fichier .htaccess

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
la source
0

IIS définit automatiquement .ttf comme application / octet-stream qui semble bien fonctionner et fontshop recommande que .woff soit défini comme application / octet-stream

aiguille
la source
0

WOFF:

  1. Format de police Web Open
  2. Il peut être compilé avec des contours TrueType ou PostScript (CFF)
  3. Il est actuellement pris en charge par FireFox 3.6+

Essayez d'ajouter cela:

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

J'ai eu le même problème, la police / l'opentype a fonctionné pour moi

oshimin
la source
OpenType n'est pas pour woff?
Mikael Dúi Bolinder
-1

Le type MIME n'est peut-être pas votre seul problème. Si le fichier de police est hébergé sur S3 ou un autre domaine, vous pouvez également avoir le problème que Firefox ne chargera pas les polices de différents domaines. C'est une solution facile avec Apache, mais dans Nginx, j'ai lu que vous devrez peut-être encoder vos fichiers de polices en base-64 et les incorporer directement dans votre fichier CSS de polices.

Ringo
la source