Échec du décodage de la police téléchargée

149

Il s'agit d'une erreur que j'obtiens dans Chrome et malheureusement, sa recherche ne m'a pas donné beaucoup de résultats. La police elle-même apparaît correctement. Cependant, j'obtiens toujours cette erreur / avertissement. Plus précisément, voici l'avertissement complet:

"Impossible de décoder la police téléchargée: http: // localhost: 8000 / app / fonts / Lato / "

Mes CSS sont les suivants:

@font-face {
    font-family:"Lato";
    src: url("../fonts/Lato/");
}

html, body {
    font-family:'Lato';
}

Je ne comprends tout simplement pas. La police est appliquée correctement, mais l'avertissement est toujours là. Essayer d'utiliser Sans-Seriffait revenir la police à la police normale du navigateur, donc c'est peut-être ça, mais je ne suis pas sûr, et même après la recherche, je n'ai rien trouvé. Merci!

ÉDITER

Il existe différents fichiers de polices, tous appartenant à la même famille. J'essaye de tous les charger. Les fichiers de polices sont .ttf. Je les charger à partir d' un dossier local, et il y a différents fichiers probatiques, comme Lato-Black.ttf, Lato-Bold.ttf, Lato-Italic.ttfetc.

Luís Ferreira
la source
2
Pourquoi la barre oblique de fin dans l'URL? Essayez-vous de charger tous les fichiers à partir d'un répertoire ou il s'agit en fait d'une redirection vers un seul fichier de police?
Álvaro González
@ ÁlvaroG.Vicario Bonjour, merci pour votre temps. J'ai édité la question pour la rendre plus claire.
Luís Ferreira

Réponses:

101

Dans la règle css, vous devez ajouter l'extension du fichier. Cet exemple avec le soutien le plus profond possible:

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

ÉDITER:

«Impossible de décoder la police téléchargée» signifie que la police est corrompue ou incomplète (métriques manquantes, tables nécessaires, dénomination des enregistrements, un million de choses possibles).

Parfois, ce problème est causé par la police elle-même. La police Google fournit la police correcte dont vous avez besoin, mais si la police est nécessaire, j'utilise Transfonter pour générer tous les formats de police.

Parfois, le client FTP endommage le fichier (pas dans ce cas, car il se trouve sur un PC local). Assurez-vous de transférer le fichier en binaire et non en ASCII.

Germano Plebani
la source
J'ai édité ma question pour la rendre plus claire. Je ne sais pas si cela change quelque chose de ce que vous avez publié. Désolé pour le désordre et merci pour votre temps.
Luís Ferreira
1
Vous devez obligatoirement utiliser @font face? Je sais que Lato est disponible sur les polices google. Quoi qu'il en soit, vous pouvez essayer ceci: font-family: 'Lato'; font-style: normal; font-weight: 400; src: local('Lato Regular'), local('Lato-Regular'), url('../font/file for regular font.wof') format('wof');Ce code pour chaque type de police, régulière, gras etc ...
Germano Plebani
1
J'ai fini par utiliser l'option des polices google et cela fonctionne bien. Merci. J'ai accepté ta réponse.
Luís Ferreira
9
Cette question est intitulée «Échec du décodage de la police téléchargée». La réponse est spécifique à une situation et n'indique pas réellement ce que signifie l'erreur.
Krii
24

J'ai rencontré un problème similaire dans Visual Studio, causé par un url()chemin d'accès incorrect à la police en question.

J'ai arrêté de recevoir cette erreur après avoir changé (par exemple):

@@font-face{
    font-family: "Example Font";
    src: url("/Fonts/ExampleFont.eot?#iefix");

pour ça:

@@font-face{
    font-family: "Example Font";
    src: url("../fonts/ExampleFont.eot?#iefix");
Alex
la source
1
pour moi ./ ou ../ n'a pas fonctionné, mais la suppression du / tout a fonctionné est passée de /assets...à assets...Merci beaucoup!
Shereef Marzouk
21

Passer du format ('woff') au format ('font-woff') m'aide à résoudre ce problème maintenant.

Changez simplement un peu ici de la réponse de Germano Plebani

 @font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('font-woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

Veuillez vérifier si les sources de votre navigateur peuvent l'ouvrir et quel est le type

Fuad Husni
la source
7
le format font-woff est incorrect, il devrait lire "woff". Et avec cela, Chrome considère la police woff comme un format inconnu et passe au meilleur format suivant (probablement ttf de woff2 ici)
Arthur
merci beaucoup, avec cette solution je pourrais aussi résoudre le problème avec d'autres formats (ttf, woff2, ...).
Far
5
Malheureusement, cette réponse est fausse. Ce que dit @Arthur n'est peut-être pas clair, mais si vous modifiez le nom du format de police, le navigateur ignorera littéralement la police, car elle ne sera pas enregistrée en tant que police. Dans l'outil d'inspection de chrome (F12), accédez à l' onglet Application puis à Cadres> Haut> Polices. Essayez d'utiliser cette solution et vous verrez les polices être supprimées. J'utilise rarement des votes négatifs sur SO, mais dans ce cas, la réponse aggrave la situation des lecteurs, car ils pourraient penser qu'ils ont résolu le problème, mais l'ont seulement camouflé.
André C. Andersen
Cela a résolu mon problème d'importation de fichiers woff dans un projet Nextjs! Merci beaucoup!
Thanh-Quy Nguyen
Comme le dit @ AndréC.Andersen, CETTE RÉPONSE SEULEMENT CAMOUFLAGE LE PROBLÈME ET NE LE RÉGLE PAS .
JohnK le
12

Assurez-vous que votre serveur envoie les fichiers de polices avec le bon mime / type .

J'ai récemment eu le même problème en utilisant nginx car certains types de polices mime sont absents de son /etc/nginx/mime.typesfichier vanilla .

J'ai résolu le problème en ajoutant les types mime manquants à l'emplacement où j'en avais besoin comme ceci:

location /app/fonts/ {

  #Fonts dir
  alias /var/www/app/fonts/;

  #Include vanilla types
  include mime.types;

  #Missing mime types
  types  {font/truetype ttf;}
  types  {application/font-woff woff;}
  types  {application/font-woff2 woff2;}
}

Vous pouvez également vérifier ceci pour étendre les mime.types dans nginx: extension du fichier nginx mime.types par défaut

Matteo
la source
12

J'ai dû ajouter type="text/css"à ma balise de lien. Je l'ai changé de:

<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:300,400,700" rel="stylesheet">

à:

<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:300,400,700" rel="stylesheet" type="text/css">

Après l'avoir changé, l'erreur a disparu.

nabjoern
la source
Merci, ça marche. Donc, si quelqu'un charge les polices de Google, ajoutez-le simplement type="text/css"et le message d'avertissement dans la console du navigateur a disparu après une actualisation `` dure ''
lewis4u
6

J'ai juste eu le même problème et je l'ai résolu en changeant

src: url("Roboto-Medium-webfont.eot?#iefix")

à

src: url("Roboto-Medium-webfont.eot?#iefix") format('embedded-opentype')
Christian Rauchenwald
la source
6

Pour moi, cette erreur s'est produite lorsque j'ai référencé une police Google en utilisant https. Lorsque je suis passé à http, l'erreur a disparu. (et oui, je l'ai essayé plusieurs fois pour confirmer que c'était la cause)

Alors j'ai changé:

@import url(https://fonts.googleapis.com/css?family=Roboto:300,400,100,500,900);

À:

@import url(http://fonts.googleapis.com/css?family=Roboto:300,400,100,500,900);
Venryx
la source
3
J'obtenais également la même erreur avec les polices Google, lorsque j'ai rechargé le problème, le problème a été résolu automatiquement!
Maulik Gangani
1
-1, désolé. il ne faut pas utiliser le httpssupport drop pour cela! Cela rend votre site non sécurisé . L'observation de @MaulikGangani fonctionne! Pensez à l'intégrer dans votre réponse
Ciprian Tomoiagă
4

Parfois, ce problème se produit lorsque vous téléchargez / téléchargez les polices en utilisant la mauvaise méthode FTP. Les polices doivent être éditées par FTP en utilisant la méthode binaire et non ASCII. (Selon votre humeur, cela peut sembler contre-intuitif, lol). Si vous ftp les fichiers de police en utilisant la méthode ASCII, vous pouvez obtenir ce message d'erreur. Si vous ftp vos fichiers avec une méthode 'auto' et que vous obtenez ce message d'erreur, essayez de forcer ftp la méthode binaire.

Giuseppe
la source
3

J'avais le même problème avec font awesome v4.4 et je l'ai corrigé en supprimant le format woff2. Je recevais un avertissement dans Chrome uniquement.

@font-face {
  font-family: 'FontAwesome';
  src: url('../fonts/fontawesome-webfont.eot?v=4.4.0');
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
Francisco Goldenstein
la source
1
Oui! J'ai supprimé le format ('woff2') et il a supprimé les avertissements. Merci.
duyn9uyen
3

Dans mon cas, cela a été causé par un fichier de chemin incorrect, en .htaccess. veuillez vérifier l'exactitude de votre chemin de fichier.

Ebrahim
la source
2

Pour moi, l'erreur a été d'oublier de mettre FTP en mode binaire avant de télécharger les fichiers de polices.

Éditer

Vous pouvez tester cela en téléchargeant d'autres types de données binaires comme des images. S'ils ne s'affichent pas non plus, cela peut être votre problème.

Robert Gowland
la source
Y a-t-il un autre terme pour cela? Je n'arrive pas à trouver cette option dans aucun de mes clients FTP.
Sarcome du
Je ne connais que les termes BIN et ASCII des navigateurs de ligne de commande * nix. Je suppose que de nombreux clients FTP modernes sauraient comment quels fichiers sont binaires et lesquels ne le sont pas, alors peut-être que ce n'est pas votre problème. Si vous voulez tester si votre client FTP envoie en mode binaire, utilisez FTP pour déplacer des données binaires, comme un .jpg, puis essayez de l'afficher. S'il a été envoyé en mode ASCII, il ne s'affichera pas. (Voir jscape.com/blog/… )
Robert Gowland
Ah je vois, merci pour l'explication. Toutes les images que je télécharge vont bien, j'ai finalement trouvé le mode binaire dans FileZilla, cela ne m'a malheureusement pas aidé. Je n'ai pas trouvé d'option dans PHP Storm pour le binaire, mais comme je l'ai dit, les images vont bien, donc je suppose que ce n'est pas le problème que j'ai.
Sarcome
1

J'ai également eu le même problème mais j'ai résolu en ajoutant 'Content-Type': 'application / x-font-ttf' dans l'en-tête de réponse pour tous les fichiers .ttf

U_R_Naveen UR_Naveen
la source
1
comment faire ça?
Baim Wrong le
1

Dans mon cas, cela a été causé par la création d'un fichier de correctif SVN qui englobait l'ajout des fichiers de polices. Ainsi:

  1. Ajouter des fichiers de polices du système de fichiers local au tronc sous-versionné
  2. Le coffre fonctionne comme prévu
  3. Créer un correctif SVN des modifications du tronc, pour inclure l'ajout de fichiers de police
  4. Appliquer le patch à une autre branche
  5. Les fichiers de polices sont ajoutés à la branche subversionée (et peuvent être validés), mais sont corrompus, ce qui entraîne une erreur dans OP.

La solution était de télécharger les fichiers de polices directement dans la branche à partir de mon système de fichiers local. Je suppose que cela s'est produit parce que les fichiers de correctifs SVN doivent tout convertir au format ASCII et ne conservent pas nécessairement le binaire pour les fichiers de polices. Mais ce n'est qu'une supposition.

MegaMatt
la source
1

Dans mon cas - en utilisant React avec Gatsby - le problème a été résolu en revérifiant tous mes chemins. J'utilisais React / Gatsby avec Sass et les fichiers source de Gatsby cherchaient les polices dans un endroit différent des fichiers compilés. Une fois que j'ai dupliqué les fichiers dans chaque chemin, ce problème a disparu.

Dave Kanter
la source
1

Dans mon cas, lors du téléchargement d'un modèle, les fichiers de polices n'étaient que des fichiers vides. Probablement un problème avec le téléchargement. Chrome a donné cette erreur générique à ce sujet. J'ai d'abord pensé à la solution de passer de woffà font-woffrésolu, mais cela a seulement obligé Chrome à ignorer les polices. Ma solution consistait à trouver les polices une par une et à les télécharger / les remplacer.

André C. Andersen
la source
0

Si vous utilisez express, vous devez autoriser la diffusion de contenu statique en ajoutant quelque chose comme: var server = express (); server.use (express.static ('./ public')); // où public est le dossier racine de l'application, avec les polices qu'il contient, à n'importe quel niveau, c'est-à-dire public / fonts ou public / dist / fonts ... // Si vous utilisez connect, google pour une configuration similaire.

Cléophas Mashiri
la source
0

J'utilise .Net Framework 4.5 / IIS 7

Pour le réparer, j'ai mis le fichier Web.config dans le dossier avec le fichier de police.

Contenu de Web.config:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</configuration>
Андрей Приймак
la source
0

S'il se trouve sur le serveur (pas dans localhost), essayez de télécharger les polices manuellement, car parfois le client FTP (par exemple, FileZilla) corrompt les fichiers et peut causer le problème. Pour moi, j'ai téléchargé manuellement en utilisant l'interface Cpanel.

Saidmamad
la source
0

Mon cas était similaire mais la police était corrompue (et donc impossible à décoder). Cela a été causé par la configuration dans maven. L'ajout de nonFilteredFileExtension pour les extensions de polices maven-resources-pluginm'a aidé:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
            <nonFilteredFileExtension>otf</nonFilteredFileExtension>
            <nonFilteredFileExtension>woff</nonFilteredFileExtension>
            <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
            <nonFilteredFileExtension>eot</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>
Fenix
la source