Множество статей в сети: http://www.fontspring.com/blog/fixing-ie9-font-face-problems предлагаю добавить ?#iefix
к URL-адресу. Мне было любопытно узнать, как это решит проблему. Спасибо.
Как это сделать? #iefix разрешить загрузку веб-шрифтов в IE6-IE8?
Ответ 1
IE8 и старшие имеют ошибку в своих синтаксических анализаторах для атрибута src. Поэтому, если вы включаете более одного формата шрифта в SRC, IE не загружает его и сообщает о ошибке 404.
Вопросительный знак решает эту проблему, поскольку он обманывает IE, думая, что остальная часть строки (другая src) является строкой запроса, и поэтому загружает только файл EOT...
Другие браузеры будут следовать спецификации и загружать только их необходимый тип шрифта...
Вы можете прочитать Paul Irish Пуленепробиваемый синтаксис @font-face, чтобы узнать больше о некоторых других причинах...
Ответ 2
Вы можете сделать что-либо вместо ?#iefix
: Основная цель - поместить ?#something
после первого файла шрифта в URL-адрес, как уже ответил @Rexyz.
@font-face {
font-family: 'MyWebFont';
src: url('webfont.eot'); /* IE9 Compat Modes */
src: url('webfont.eot?#FooAnything') format('embedded-opentype'), /* IE6-IE8 */
url('webfont.woff') format('woff'), /* Modern Browsers */
url('webfont.ttf') format('truetype'), /* Safari, Android, iOS */
url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}
Ответ 3
?#iefix
должен остановить браузер, интерпретируя любые символы после ?
как строку запроса и, следовательно, предотвращает еще одну возможную ошибку сервера.