FontAwesome не отображается в Firefox

Связанный с этим вопрос здесь.

Ответ Бориса на вышеупомянутый вопрос, похоже, имеет смысл, но я установил файлы Font Awesome на свой сервер, и проблема остается:

enter image description here

Я заглянул в библиотеку и обнаружил, что файлы шрифтов включены в установку, поэтому аргумент о межсерверном доступе к шрифтам кажется недействительным. Я не возражаю против использования BootstrapCDN, но, похоже, предложение Бориса применимо, и я не знаю, как отправить правильные заголовки CORS. (Я попробовал, но он тоже не работает.) Подумайте, как я могу это исправить, используя "Bootstrap CDN" или "CSS по умолчанию"? (см. также эти инструкции.)


PS: IE10 показывает глиф правильно.

Ответы

Ответ 1

Вы пробовали Bootstrap CDN?

Просто включите <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> в раздел <head>. Файлы шрифтов будут автоматически загружаться из CDN.

Проверено это на Firefox и работает отлично.

@Boris говорит:

Firefox разрешает междоменное связывание шрифтов, если сервер, на котором установлен шрифт, отправляет правильные заголовки CORS.

Итак, ясно, что CDNs duty установить правильные заголовки, не ваши. И они, похоже, делают это правильно, потому что Firefox не жалуется.

Если вы размещаете шрифты на своем собственном сервере, имейте в виду, что правило междоменного домена может все еще применяться, например. файлы шрифтов в разделе domain.com могут быть недоступны из www.domain.com, если www.domain.com не отправляет правильные заголовки.

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

Ответ 2

Если вы являетесь владельцем собственного сервера, вы можете добавить заголовок http, чтобы справиться с этой проблемой. Проблема, основанная на междоменных политиках.

foo.com/font-awesome.woff

boo.com/index.htm

в этом случае вы должны добавить этот заголовок в foo.com

Access-Control-Allow-Origin = "http://boo.com"

или

Access-Control-Allow-Origin = "*"

который сделает ваш файл шрифта доступным с других сайтов или определенного сайта.

Ответ 3

У меня такая же проблема, мы используем шрифты на плате маршрутизатора с помощью micro httpd. я добавил заголовок Access-Control-Allow-Origin: *, но не работал у меня.

Я нашел в firebug, что файл woff не сохраняет ничего в тексте ответа. то же самое, если я использую URL-адрес CDN, все работает нормально. поэтому локальному серверу micro-httpd нужен какой-то обязательный заголовок для настройки. скажите, пожалуйста, также точные типы mime для всех шрифтов.

  • .ttf "," application/x-font-ttf "
  • .eot "," application/vnd.ms-fontobject "
  • .woff "," application/font-woff "
  • .svg "," image/svg + xml "

Ответ 4

чтобы заставить fontovesome css работать локально, включить файлы в папку Fonts в тот же каталог .html файлов (страниц).

например: структура файла на данный момент, когда fontawesome не работает

    prototype\pages\.html files
    prototype\styles\font-awesome\css\font-awesome.min.css
    prototype\styles\font-awesome\css\fonts\fontawesome-webfont.eot,fontawesome-webfont.woff

Проблема здесь в том, что для страницы, загруженной из файла://URI, только файлы в (или ниже) одного и того же каталога файловой системы считаются "одинаковыми", поэтому помещаем шрифт в другое поддерево (../font/) означает, что оно будет заблокировано ограничениями политики безопасности. Поскольку Firefox отключает междоменные шрифты "по умолчанию". Вместо этого измените структуру файла, как показано ниже:

      prototype\pages\.html files
      prototype\styles\font-awesome\css\font-awesome.min.css
     prototype\pages\fonts\fontawesome-webfont.eot,fontawesome-webfont.woff

поместите папку шрифтов в каталог с папками, которая исправляет проблему. Надеюсь, что это поможет.

Ответ 5

Убедитесь, что ваши пути верны. Используйте класс fa и класс значков, например:

fa fa-envelope

и будет отлично работать.

Привет.