Я пытаюсь создать тип репозитория шрифта для использования на моих веб-сайтах, так, чтобы я мог звонить в любой шрифт в репозитории в моей CSS без любой другой установки. Чтобы сделать это, я создал субдомен, в который я поместил папки для каждого шрифта в репозитории, который содержал различные типы файлов для каждого шрифта. Я также поместил файл CSS, названный шрифтом-face.css на корне субдомена, и заполнил его @font-face
объявления для каждого из шрифтов, шрифты связаны с абсолютной ссылкой так, чтобы они могли использоваться отовсюду.
Моя проблема - то, что кажется, что я могу только использовать шрифты на том субдомене, где они расположены на моих других сайтах, шрифт не показывает. Используя поджигателя я решил, что файл шрифта-face.css успешно связывался с и загружался. Итак, почему шрифт правильно не загружается? Есть ли защита на файлах шрифтов или чем-то? Я использую все шрифты, с которыми мне нужно разрешить сделать это, таким образом, я не вижу, почему это происходит. Возможно, это - апачская проблема, но я могу загрузить шрифт очень хорошо, когда я связываюсь с ним.
О, и просто для уточнения, я не нарушаю авторских прав путем установки этого, всем шрифтам, которые я использую, разрешают позволить этот вид вещи. Я однако хотел бы настроить способ, которым только у меня может быть доступ к этому репозиторию шрифтов, но это - другой проект.
Это потому, что Firefox (из вашего упоминания Firebug) считает, что встраивание веб-шрифтов между доменами и даже субдоменами является плохой идеей.
Вы можете убедить его загружать шрифты из вашего субдомена, добавив его в файл верхнего уровня .htaccess
субдомена, где обслуживаются ваши шрифты (обновлено для адаптации кода из того же файла в HTML5 Boilerplate ):
<FilesMatch "\.(ttf|ttc|otf|eot|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
В ответ на это:
Однако я хотел бы настроить способ, при котором только я могу иметь доступ к этому хранилищу шрифтов, но это другой проект.
Спецификация W3C для Access-Control-Allow-Origin
не говорит ничего, кроме подстановочного знака «*»
или конкретного домена. Пока что я нашел этот SO-ответ , который предлагает проверить заголовок Origin
, но я думаю, что это заголовок только для Firefox. Я не уверен насчет других браузеров (им даже не нужен описанный выше трюк .htaccess
для работы междоменных веб-шрифтов).