@font-face шрифты только работают над своим собственным доменом

Я пытаюсь создать тип репозитория шрифта для использования на моих веб-сайтах, так, чтобы я мог звонить в любой шрифт в репозитории в моей CSS без любой другой установки. Чтобы сделать это, я создал субдомен, в который я поместил папки для каждого шрифта в репозитории, который содержал различные типы файлов для каждого шрифта. Я также поместил файл CSS, названный шрифтом-face.css на корне субдомена, и заполнил его @font-face объявления для каждого из шрифтов, шрифты связаны с абсолютной ссылкой так, чтобы они могли использоваться отовсюду.

Моя проблема - то, что кажется, что я могу только использовать шрифты на том субдомене, где они расположены на моих других сайтах, шрифт не показывает. Используя поджигателя я решил, что файл шрифта-face.css успешно связывался с и загружался. Итак, почему шрифт правильно не загружается? Есть ли защита на файлах шрифтов или чем-то? Я использую все шрифты, с которыми мне нужно разрешить сделать это, таким образом, я не вижу, почему это происходит. Возможно, это - апачская проблема, но я могу загрузить шрифт очень хорошо, когда я связываюсь с ним.

О, и просто для уточнения, я не нарушаю авторских прав путем установки этого, всем шрифтам, которые я использую, разрешают позволить этот вид вещи. Я однако хотел бы настроить способ, которым только у меня может быть доступ к этому репозиторию шрифтов, но это - другой проект.

57
задан BoltClock 4 March 2011 в 00:22
поделиться

1 ответ

Это потому, что 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 для работы междоменных веб-шрифтов).

92
ответ дан 24 November 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: