Во всей документации, которую я искал, говорится, что правильный синтаксис для загрузки внешних файлов шрифтов в CSS следующий:
@font-face {
font-family: 'JosefinSansLight';
src: url('josefinsans-light-webfont.eot');
src: url('josefinsans-light-webfont.eot?#iefix') format('embedded-opentype'),
url('josefinsans-light-webfont.woff') format('woff'),
url('josefinsans-light-webfont.ttf') format('truetype'),
url('josefinsans-light-webfont.svg#JosefinSansLight') format('svg');
font-weight: normal;
font-style: normal;
}
(Конечно, при условии, что у вас есть шрифт во всех вышеперечисленных форматах, что я и делаю).
Однако приведенный выше синтаксис не работает у меня в Safari 5.0.2 или Firefox 9: шрифт просто не загружается. С другой стороны, когда я пытаюсь сделать это:
@font-face {
font-family: 'Josefin Sans';
src: url('JosefinSans-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
Шрифт загружается и отображается. (У меня нет IE для тестирования).
Что случилось? Я должен упомянуть, что изначально у меня был только файл TTF (тот, который я загружаю во втором примере), и что я создал другие версии (те, которые не загружаются) с помощью Fontsquirrel.
Редактировать: проверяя свои журналы Apache, я вижу, что браузер определенно загружает шрифты (поэтому они находятся в правильном месте). Firefox просто загружает шрифт TTF во втором случае (как и следовало ожидать), в то время как в первом случае он загружает только шрифт EOT (первый в коде), а не остальные. OTOH, Safari загружает TTF, но, похоже, ничего не загружает в первом случае. Я также не вижу в журналах ошибок 404, связанных со шрифтами.