IE9 блокирует загрузку веб-шрифта кросс-происхождения - PullRequest
63 голосов
/ 21 февраля 2011

Это сводит меня с ума.

Просто протестировал сайт на IE9 и обнаружил, что «живая» версия отображает веб-шрифт, который я использую меньше, чем в версии dev.

Вот несколько скриншотов:

enter image description here

Я использую набор Font Squirrel @ font-face. Как вы видите, это нормально для Firefox, Chrome и даже IE9 при просмотре локальной версии сайта.

Единственное различие между локальной и действующей версиями заключается в том, что шрифт загружается из другого домена на действующем сайте (я правильно настроил междоменную политику, о чем свидетельствует тот факт, что она работает в Firefox и Chrome ).

Я не могу вспомнить, как это выглядело в IE8 (Microsoft опять не думала о разработчиках и установила IE9 поверх IE8, не имея возможности запускать их одновременно)

Сайт находится по адресу http://enplanner.com, поэтому вы можете просмотреть источник.

Любая помощь по этому вопросу будет очень признательна - спасибо заранее.

Редактировать: Я удалил IE9 и обнаружил, что он выглядит одинаково как на локальном, так и на живом в IE8. Похоже, IE8 имеет превосходный механизм рендеринга, который ближе к FF / Chrome, чем IE9. Это довольно удручающее открытие.

Ответы [ 13 ]

0 голосов
/ 07 июля 2014

НЕ ИСПЫТАНО!
Бит файла сайта Nginx, позволяющий только исходный доступ к файлам шрифтов, если ваш CDN не является общедоступным :-) Удачного кодирования

location ~ \.(ttf|otf|eot|woff)$ { 
    Access-Control-Allow-Origin: * 
}
0 голосов
/ 20 сентября 2013

Я попробовал все, от изменения конфигурации apache и файлов .htaccess, но безуспешно. В инструментах разработки IE я наткнулся на «Режим документа», и по умолчанию был IE7. Итак, после некоторых исследований я нашел этот метатег:

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

Теперь IE 10 и 9 правильно форматируют мой веб-сайт и правильно отображают все значки Font Awesome.

Надеюсь, это поможет ...

0 голосов
/ 22 декабря 2012

Для реализации в ASP.Net вы можете использовать этот синтаксис

Response.AppendHeader("Access-Control-Allow-Origin", "*");
...