IE9 bloque le téléchargement d'une police web d'origine croisée

ça me rend dingue.

vient de tester un site sur IE9 et a découvert que la version 'live' rend une police web que j'utilise plus petite que sur la version dev.

Voici une sélection de captures d'écran:

enter image description here

j'utilise le kit Font Squirrel @font-face. Comme vous pouvez le voir, il est très bien sur Firefox, Chrome et même IE9 lors de la visualisation d'une version locale du site.

la seule différence entre les versions locale et live est que la police est chargée à partir d'un domaine différent sur le site live (j'ai mis en place la Politique cross-domain correctement, comme illustré par le fait qu'il fonctionne sur Firefox et Chrome).

Je ne me souviens pas à quoi il ressemblait dans IE8 (Microsoft, encore une fois, n'ont pas pensé de développeurs et ont installé IE9 sur le dessus de IE8 sans option de les exécuter simultanément)

le site est à http://enplanner.com pour que vous puissiez voir la source.

toute aide sur ce serait très apprécié - merci à l'avance.

Edit: j'ai enlevé IE9 et découvert que c'est ressemble exactement la même sur les deux locale et de vivre dans IE8. Il semble que IE8 ait un moteur de rendu supérieur qui est plus proche de FF/Chrome que IE9. C'est assez déprimant de découverte.

63
demandé sur Barna Tekse 2011-02-21 14:26:07

13 réponses

IE9 prend en charge .WOFF; IE8 ne fait pas, et soutient seulement .EOT fonts.

ouvrez les outils de développement IE9 F12 et vous voyez les messages suivants:

CSS3117: @font-face failed cross-origin request. Resource access is restricted. 
Neuton-webfont.woff

CSS3117: @font-face failed cross-origin request. Resource access is restricted. 
YanoneKaffeesatz-Regular-webfont.woff

CSS3114: @font-face failed OpenType embedding permission check. Permission must be Installable. 
Neuton-webfont.ttf

CSS3114: @font-face failed OpenType embedding permission check. Permission must be Installable. 
YanoneKaffeesatz-Regular-webfont.ttf

en examinant vos en-têtes HTTP, il est clair que votre accès cross-domain n'est pas configuré correctement, car il n'y a pas d'en-tête de réponse Access-Control-Allow-Origin sur vos fichiers WOFF. Ils sont également livrés avec le mauvais type MIME ( text/plain ) bien que cela ne cause pas votre problème. Cependant, l'échec de la mise en correspondance de woff avec le type MIME correct peut causer des problèmes car certains serveurs ne serviront pas les fichiers avec des extensions "non définies" et retourneront plutôt une erreur HTTP/404 .

60
répondu EricLaw 2014-02-12 07:24:51

OK, voilà ce qui a marché. Placez la section suivante dans votre configuration Apache pour l'hôte à partir duquel vous servez les polices:

<FilesMatch "\.(ttf|otf|eot|woff)$">
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "http://mydomain.com"
    </IfModule>
</FilesMatch>

remplacer "mydomain.com' avec votre propre domaine ou * (mais faites attention en utilisant * car cela signifie que n'importe qui peut utiliser votre CDN)

le '/ woff ' était ce que j'avais oublié. Doh!

34
répondu Dan Herd 2011-06-09 14:33:00

pour IIS ajouter les lignes ci-dessous....fonctionne comme un charme


<system.webServer>
          <httpProtocol>
          <customHeaders>
              <add name="Access-Control-Allow-Origin" value="*" />
              <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
              <add name="Access-Control-Allow-Headers" value="Content-Type" />
          </customHeaders>
      </httpProtocol>
  </system.webServer>
8
répondu John 2013-02-15 16:47:10

en ce qui concerne la réponse de meanstreakuk ci-dessus, je voudrais compléter. Nous avons eu le même problème et nous avons cherché ce que fait Google Web Font. Donc, nous avons mis dans notre htaccess, ce:

Header set Access-Control-Allow-Origin " * "
au lieu de notre domaine. Si l'asterisc, comme Google le fait, il fonctionne tout le temps.
7
répondu maufarinelli 2011-12-20 21:08:06

vérifiez si vous pouvez ouvrir dans IE le fichier (your-web.com/your-font.woff), si vous recevez l'erreur 404 aller à IIS, double-cliquez l'option de configuration " MIME Types "tout en ayant IIS noeud racine sélectionné dans le panneau gauche et cliquez sur" Ajouter..."lien dans le panneau des Actions à droite. Cela va faire apparaître le dialogue suivant. Ajouter. woff extension de fichier et spécifier " application/x-font-woff " comme type MIME correspondant.

I utilisez ces instructions dans ce site ( Robòtica educativa ), Je convertiserai mon original .police ttf ( http://www.font2web.com/ )

3
répondu Gabri 2013-04-19 08:46:53

j'ai trouvé une solution. Ajouté ceci à htaccess.

BrowserMatch MSIE best-standards-support
Header set X-UA-Compatible IE=8 env=best-standards-support
3
répondu sudo 2013-05-23 00:49:24

une solution alternative à l'utilisation de l'en-tête Access-Control-Allow-Origin est d'intégrer la police dans votre CSS en utilisant data:.

3
répondu Jonathan Aquino 2014-01-02 20:52:24

il est également intéressant de noter que si vos actifs sont hébergés sur Amazon AWS S3 que vous ne serez pas en mesure de définir les en-têtes que le serveur envoie. Au lieu de cela, vous aurez besoin de configurer les paramètres de CORS sur votre seau, selon ces instructions:

1
répondu douglasr 2013-07-25 18:59:15

N'oubliez pas d'inclure .svg -- cela peut être nécessaire dans certains cas. L'ajout a résolu le problème dans IE 11

<FilesMatch "\.(eot|otf|svg|woff|ttf)$">
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "*"
    </IfModule>
</FilesMatch>
1
répondu Eric 2014-11-05 23:21:26

à mettre en œuvre en ASP.Net vous pouvez utiliser cette syntaxe

Response.AppendHeader("Access-Control-Allow-Origin", "*");
0
répondu Don Rolling 2012-12-21 20:58:45

j'ai tout essayé depuis la modification de ma config apache, et .fichiers htaccess sans succès. Dans les outils de développement D'IE, je suis tombé sur "Document Mode" et la valeur par défaut était IE7. Donc, après quelques recherches, j'ai trouvé cette balise meta:

<meta http-equiv="X-UA-Compatible" content="IE=9">

maintenant IE 10, et 9 formater mon site web correctement et afficher toutes les icônes de police impressionnant correctement.

Espère que ça aide...

0
répondu prodigerati 2013-09-19 21:13:28

NON TESTÉ!

NGINX site bit de fichier pour permettre juste l'accès d'origine aux fichiers de police si votre CDN n'est pas public: -) Happy coding

location ~ \.(ttf|otf|eot|woff)$ { 
    Access-Control-Allow-Origin: * 
}
0
répondu James Harrington 2014-07-07 14:25:20

après avoir remarqué cette erreur dans la console (F12): @font-face failed cross-origin request. Resource access is restricted j'ai découvert que mon navigateur (IE11, émulation: IE9) " contenu bloqué pour aider à protéger ma vie privée ". En débloquant le contenu-cliquez sur le signe à côté de l'url - il a fonctionné comme il devrait.

-3
répondu Frank 2015-01-29 13:44:16