Не вдалося розшифрувати завантажений шрифт


149

Це помилка, яку я отримую в Chrome, і, на жаль, пошук не дав мені великих результатів. Сам шрифт відображається правильно. Однак я все одно отримую цю помилку / попередження. Більш конкретно, це повне попередження:

"Не вдалося розшифрувати завантажений шрифт: http: // localhost: 8000 / app / fonts / Lato / "

Мої CSS такі:

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

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

Я просто не розумію. Шрифт нанесено правильно, але попередження завжди є. Спроба використання Sans-Serifзмушує шрифт повернутися до звичайного шрифту браузера, так що це може бути, але я не впевнений, і навіть після пошуку я нічого не знайшов. Дякую!

EDIT

Існують різні файли шрифтів, усі з однієї родини. Я намагаюся їх усіх завантажувати. Файли шрифтів є .ttf. Я завантаживши їх з локальної папки, а також існують різні шрифти-файли, як Lato-Black.ttf, Lato-Bold.ttf,Lato-Italic.ttf і т.д.


2
Чому кінцевий косої риски в URL? Ви намагаєтеся завантажити всі файли з каталогу або це насправді переадресація на один файл шрифту?
Альваро Гонсалес

@ ÁlvaroG.Vicario Привіт, дякую за ваш час. Я відредагував питання, щоб зробити його більш зрозумілим.
Луїс Феррейра

Відповіді:


101

У правило css потрібно додати розширення файлу. Цей приклад з якомога глибшою підтримкою:

@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 */
}

Редагувати:

"Не вдалося розшифрувати завантажений шрифт" означає, що шрифт пошкоджений або є неповним (відсутні метрики, необхідні таблиці, записи імен, мільйон можливих речей).

Іноді ця проблема викликана самим шрифтом. Шрифт Google надає потрібний вам шрифт, але якщо потрібне обличчя шрифту, я використовую Transfonter для створення всього формату шрифту.

Іноді FTP-клієнт пошкоджує файл (не в цьому випадку, оскільки він знаходиться на локальному ПК). Обов’язково перенесіть файл у двійковій формі, а не в ASCII.


Я відредагував своє питання, щоб зробити його зрозумілішим. Я не впевнений, чи змінює щось із того, що ви розмістили. Вибачте за безлад і дякую за ваш час.
Луїс Феррейра

1
Вам потрібно використовувати обов'язково @font face? Я знаю, що Lato доступний у шрифтах google. У будь-якому випадку ви можете спробувати це: 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');Цей код для кожного типу шрифту, регулярного, жирного тощо ...
Germano Plebani

1
Я в кінцевому підсумку скористався параметром шрифтів google, і він працює добре. Дякую. Я прийняв вашу відповідь.
Луїс Феррейра

9
Це питання позначено "не вдалося розшифрувати завантажений шрифт". Відповідь конкретна ситуація, і насправді не зазначено, що означає помилка.
Krii

24

Я відчував подібну проблему в Visual Studio, яка була викликана неправильним url() шлях до відповідного шрифту.

Я перестав отримувати цю помилку після зміни (наприклад):

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

до цього:

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

1
для мене ./ або ../ не працює , але видалення / взагалі працював пішов від /assets...до assets...Спасибі так багато!
Шериф Марзук

21

Перехід від формату ('woff') до формату ('font-woff') допоможе мені вирішити цю проблему саме зараз.

Просто змініть трохи зміни тут, на відповідь Германо Плебані

 @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 */
}

Перевірте, чи можуть джерела вашого веб-переглядача відкрити його та тип


7
формат шрифту-woff невірний, він повинен читати "woff". І з цим Chrome розглядає шрифт woff як невідомий формат і переходить до наступного найкращого формату (мабуть, ttf woff2 тут)
Артур

велике дякую, за допомогою цього рішення я міг би вирішити проблему і з іншими форматами (ttf, woff2, ...).
Далекий

5
На жаль, ця відповідь неправильна. Можливо, незрозуміло, що говорить @Arthur, але якщо змінити назву формату шрифту, браузер буквально ігнорує шрифт, оскільки він не реєструється як шрифт. У інструменті перевірки хрому (F12) перейдіть на вкладку " Прикладні програми" , а потім вниз "Кадри"> "Вгору"> "Шрифти". Спробуйте використовувати це рішення, і ви побачите, що шрифти будуть видалені. Я рідко використовую звукові сигнали на SO, але в цьому випадку відповідь насправді робить читачів гіршими, оскільки вони можуть подумати, що вирішили проблему, але лише замаскували її.
Андре К. Андерсен

Це вирішило мою проблему з імпортом файлів woff у проект Nextjs! Дуже дякую!
Thanh-Quy Nguyen

Як стверджує @ AndréC.Andersen, ЦЕ ВІДПОВІДЬ САМО КАМУФУВАЄ ПРОБЛЕМУ ТА НЕ ВІДКЛЮЧАЄ ЇЇ .
ДжонК

12

Переконайтеся, що ваш сервер надсилає файли шрифтів з правильним mime / type .

Нещодавно у мене є та сама проблема з використанням nginx, оскільки деякі /etc/nginx/mime.typesфайли mime шрифту відсутні у ванільному файлі.

Я вирішив проблему, додавши відсутні типи mime у тому місці, де мені знадобився такий:

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;}
}

Ви також можете перевірити це для розширення mime.types у nginx: розширення файлу mgin.types за замовчуванням nginx


12

Довелося додати type="text/css" до свого посилання-тегу. Я змінив це на:

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

Після того як я змінив його, помилка зникла.


Дякую, це працює. Тож якщо хтось завантажує шрифти з google, просто додайте це, type="text/css"і попереджувальне повідомлення в консолі браузера піде після "жорсткого" оновлення
lewis4u

6

У мене просто було те саме питання, і я вирішив його, змінивши

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

до

src: url("Roboto-Medium-webfont.eot?#iefix") format('embedded-opentype')

6

Для мене ця помилка сталася, коли я посилався на шрифт google за допомогою https. Коли я перейшов на http, помилка пішла. (і так, я кілька разів намагався підтвердити, що це було причиною)

Тому я змінив:

@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);

3
Я також отримував таку ж помилку з google шрифтами, коли я важко перезавантажував проблему, яку вирішували автоматично!
Maulik Gangani

1
-1, вибачте. для цього не слід використовувати httpsпідтримку крапель ! Це робить ваш сайт незахищеним . @MaulikGangani спостереження працює! Поміркуйте, як інтегрувати його у свою відповідь
Ciprian Tomoiagă

4

Іноді ця проблема трапляється під час завантаження / завантаження шрифтів неправильним методом FTP. Шрифти повинні бути FTP-ed, використовуючи двійковий метод, а не ASCII. (Залежно від вашого настрою, він може відчувати себе контрінтуїтивним, хаха). Якщо ви FTP файли шрифту використовуєте метод ASCII, ви можете отримати це повідомлення про помилку. Якщо ви FTP файли методом "auto", і ви отримуєте це повідомлення про помилку, спробуйте ftp, форсуючи двійковий метод.


3

У мене була така ж проблема із шрифтом awesome v4.4, і я виправив це, видаливши формат woff2. Я отримував попередження лише в Chrome.

@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;
}

1
Так! Я видалив формат ('woff2'), і він видалив попередження. Дякую.
duyn9uyen

3

У моєму випадку це було викликано неправильним файлом шляху, у .htaccess. будь ласка, перевірте правильність шляху вашого файлу.


2

Для мене помилкою було забуття перевести FTP у бінарний режим перед завантаженням файлів шрифтів.

Редагувати

Ви можете перевірити це, завантаживши інші типи бінарних даних, наприклад зображення. Якщо вони також не відображаються, це може бути вашою проблемою.


Чи є інший термін для цього? Я не можу знайти такий варіант ні в одному зі своїх FTP-клієнтів.
Саркома

Я знаю лише терміни BIN і ASCII з браузерів командного рядка * nix. Я б припустив, що багато сучасних FTP-клієнтів знають, які файли є бінарними, а які ні, тому, можливо, це не ваша проблема. Якщо ви хочете перевірити, чи посилає ваш FTP-клієнт у двійковому режимі, використовуйте FTP для переміщення бінарних даних, наприклад .jpg, а потім спробуйте переглянути їх. Якщо він був надісланий в режимі ASCII, він не відображатиметься. (Див. Jscape.com/blog/… )
Роберт Гоуланд

Ах бачу, дякую за пояснення. Усі зображення, які я завантажую, добре, я зрештою знайшов двійковий режим у FileZilla, він мені, на жаль, не допоміг. Я не зміг знайти варіант у PHP Storm для бінарних файлів, але, як я вже сказав, образи прекрасні, тож я здогадуюсь, що це не проблема у мене.
Саркома


1

У моєму випадку це було викликано створенням файлу патчів SVN, який охоплював додавання файлів шрифтів. Так:

  1. Додайте шрифтові файли з локальної файлової системи в підривний магістраль
  2. Магістраль працює як очікувалося
  3. Створіть SVN-патч змін магістралі, щоб включити додавання файлів шрифтів
  4. Застосувати патч до іншої гілки
  5. Файли шрифтів додаються до підривчастої гілки (і можуть бути зроблені), але пошкоджуються, спричиняючи помилку в ОП.

Рішенням було завантаження файлів шрифтів безпосередньо у відділення з моєї локальної файлової системи. Я припускаю, що це сталося тому, що файли патчів SVN повинні конвертувати все у формат ASCII, і не обов'язково зберігати двійкові файли шрифтів. Але це лише здогадка.


1

У моєму випадку - за допомогою React with Gatsby - проблему було вирішено подвійною перевіркою всіх моїх шляхів. Я використовував React / Gatsby з Sass, і вихідні файли Gatsby шукали шрифти в іншому місці, ніж компільовані файли. Після того, як я копіював файли в кожен шлях, цієї проблеми не було.


1

У моєму випадку при завантаженні шаблону файли шрифтів були просто порожніми файлами. Можливо, проблема з завантаженням. Chrome дав цю загальну помилку щодо цього. Я думав , що спочатку рішення змінюється від woffдо font-woffвирішена, але це тільки зробило Chrome ігнорувати шрифти. Моїм рішенням було пошук шрифтів по одному та завантаження / заміна їх.


0

Якщо ви використовуєте express, вам потрібно дозволити подання статичного вмісту, додавши щось на зразок: var server = express (); server.use (express.static ('./ public')); // де public - коренева папка програми, що містить шрифти, що містяться в ній, на будь-якому рівні, тобто public / fonts або public / dist / fonts ... // Якщо ви використовуєте connect, google для подібної конфігурації.


0

Я використовую .Net Framework 4.5 / IIS 7

Щоб виправити це, я помістив файл Web.config у папку з файлом шрифту.

Вміст Web.config:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</configuration>


0

Якщо він знаходиться на сервері (а не у localhost), спробуйте завантажити шрифти вручну, оскільки іноді FTP-клієнт (наприклад, FileZilla) пошкоджує файли, і це може спричинити проблему. Для мене я завантажував вручну за допомогою інтерфейсу Cpanel.


0

Мій вигляд виглядав схожим, але шрифт був пошкодженим (і так неможливо розшифрувати). Це було викликано конфігурацією в maven. Додавання nonFilteredFileExtension для розширень шрифту всередині maven-resources-pluginдопомогло мені:

<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>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.