web-dev-qa-db-fra.com

Police téléchargeable sur Firefox: mauvais URI ou accès intersite non autorisé

Je suis webmaster à http://www.beperk.com (je vous donne l'URL pour que vous puissiez vérifier le problème) et j'ai beaucoup de problèmes avec @font -face en CSS.

Je veux utiliser les fondations de zurb dot com, je les ai donc hébergées sur Amazon S3.

J'ai configuré le compartiment pour autoriser l'accès interdomaine comme spécifié ici: http://docs.aws.Amazon.com/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors =

Et tout a commencé à fonctionner sans problème sur webkit, trident et gecko ... surtout: lors de la navigation sur le web avec firefox (versions 17, 18 et 19 testées) toutes les icônes échouent au hasard avec cette erreur:

Timestamp: 22/02/13 13:18:01
Error: downloadable font: download failed (font-family: "GeneralFoundicons" style:normal weight:normal stretch:normal src index:1): bad URI or cross-site access not allowed

Et je dis au hasard car après un rechargement complet de la page (avec contrôle/commande + R), chaque icône semble normalement échouer à nouveau après quelques visites.

Quelqu'un peut-il trouver le problème?

32
dolarsrg

Sur votre serveur, vous devrez ajouter:

Access-Control-Allow-Origin

Dans l'en-tête des fichiers de police, par exemple, si vous utilisez Apache, vous pouvez l'ajouter au fichier .htaccess:

<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch>
39
Ryan McDonough

Si quelqu'un utilise des ressources locales et fait face à ce problème dans Firefox. Tu peux aller à about:config et modifiez le security.fileuri.strict_Origin_policy préférence à false.

voir: https://developer.mozilla.org/en-US/docs/Same-Origin_policy_for_file:_URIs

12
thanh

essayez d'utiliser des polices encodées en base64 comme:

@font-face {
 font-family:"font-name";
 src:url(data:font/opentype;base64,[paste-64-code-here]);
 font-style:normal;
 font-weight:400;
}

voir: http://sosweetcreative.com/2613/font-face-and-base64-data-uri

cela a parfaitement fonctionné.

5
matt hias