Font Face не работает в IIS 8.0

У меня есть шрифт в моей программе, сгенерированный из Font Squirrel. Я просто не могу заставить его работать в IIS, он работает на локальном хосте. Я добавил application/font-woff статью в свой MIME Типы, но он все еще не хочет работать.

Context
--Fonts
----font location
--css files

CSS

@font-face {
    font-family: 'wallStreetFont';
    src: url('Fonts/subway-webfont.eot');
    src: url('Fonts/subway-webfont.eot?#iefix') format('embedded-opentype'),
         url('Fonts/subway-webfont.woff2') format('woff2'),
         url('Fonts/subway-webfont.woff') format('woff'),
         url('Fonts/subway-webfont.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

ИЗМЕНИТЬ ТЕКУЩИЙ MIME

Я использую стандартный IIS 8 MIME font/x-woff.


person joetinger    schedule 11.09.2014    source источник
comment
Как ты его вызываешь? Вы пробовали образец вывода в zip-архиве Font Squirrel?   -  person Aibrean    schedule 12.09.2014
comment
Если вы используете IIS 8, вам не нужно добавлять тип mime в веб-конфигурацию для WOFF. На самом деле это, скорее всего, ошибка из-за дубликата.   -  person Colin Bacon    schedule 12.09.2014
comment
@Aibrean да, образец вывода работает   -  person joetinger    schedule 12.09.2014
comment
@ColinBacon Я прочитал это после того, как опубликовал. Итак, в настоящее время у меня есть font/x-woff , это унаследовано от IIS 8.0 . Но все еще не повезло с правильным шрифтом   -  person joetinger    schedule 12.09.2014


Ответы (5)


Приятно видеть, что WOFF2 включен в шрифты Font Squirrel! Хотя IIS 8 не требует добавления типа mime для WOFF, он понадобится для WOFF2. W3C рекомендует:

application/font-woff2

Дополнительную информацию о WOFF2 см. здесь.

Чтобы добавить тип mime в IIS, измените Web.Config следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- ... -->
  <system.webServer>
    <!-- ... -->
    <staticContent>
      <!-- ... -->
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>
    <!-- ... -->
  </system.webServer>
person Colin Bacon    schedule 11.09.2014
comment
Я добавил woff2, но все равно ничего - person joetinger; 12.09.2014
comment
Если вы посмотрите в свои инструменты разработчика. Вы получаете 404, когда он пытается получить файл шрифта? Убедитесь, что путь указан правильно и что у вас есть права доступа к нему в браузере. - person Colin Bacon; 12.09.2014
comment
Да, http://192.168.72.196:85/bundles/Fonts/subway-webfont.woff2 я не уверен, откуда они берут папку с пакетами. Любая идея? - person joetinger; 12.09.2014
comment
Я предполагаю, что вы используете связывание и минимизацию ASP.NET. Если вы установите это в конфигурации вашего пакета BundleTable.EnableOptimizations = true. Ваш локальный хост должен вести себя так же, как и на рабочем сервере. - person Colin Bacon; 12.09.2014
comment
Спасибо за помощь, теперь все работает. Это была комбинация ошибки woff2 и ошибки 404, которая оказалась опечаткой в ​​моем пакете. Спасибо! - person joetinger; 12.09.2014
comment
Это не помогло мне. У меня есть файлы .woff и .woff2 в одной папке. Я могу получить .woff, но не .woff2. Я попытался добавить этот код, а также добавил Mime Type вручную, используя IIS, но все равно получаю ошибку 404. Что я могу попробовать еще раз? - person RealSollyM; 03.03.2015
comment
@SollyM, как бы покровительственно это ни звучало, проверьте свои инструменты разработчика, чтобы увидеть, какой адрес он пытается получить, и следуйте по пути, чтобы увидеть, нацелен ли он туда, куда вы думаете. Проверьте орфографию и т. Д. Также РЕДАКТИРОВАТЬ: также очистите кеш в соответствии с решением Варуна, если проблема все еще возникает (CTRL + Shift + R Win и Cmd + Shift + R Mac) - person James Cushing; 06.05.2015
comment
НАШЕЛ: Если вы все еще получаете ошибку 404, проверьте, правильно ли вы редактировали Web.config... Я работал не в том файле, это должен быть корневой Web.config - person Apolo; 07.08.2015

Чтобы шрифты woff и woff2 правильно работали в IIS, необходимо добавить следующие типы MIME в файл Web.Config.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>  
  <system.webServer>    
    <staticContent>
        <remove fileExtension=".woff" />
        <remove fileExtension=".woff2" />
        <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
        <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>

Если вы все еще сталкиваетесь с ошибкой 404 в Google Chrome, вам следует очистить кеш браузера перед перезагрузкой страницы.

person Varun    schedule 09.04.2015
comment
Теперь спецификация рекомендует, чтобы mimeType для woff был application/font-woff. . - person Steven; 22.04.2015
comment
У меня была только проблема .woff2 404, и это сработало для меня. Я использовал только строки, относящиеся к woff2 - person Francisc0; 14.07.2015
comment
Мне помогла очистка кеша! Спасибо - person Brendan Gooden; 18.01.2021

Обратите внимание, что также можно настроить типы MIME в диспетчере IIS. Просто выберите веб-сайт, а затем дважды щелкните значок MIME Types в разделе IIS на главной панели.

введите здесь описание изображения

Затем вы должны увидеть список всех существующих типов MIME и иметь возможность добавлять новые с помощью ссылки «Добавить...» на правой панели.

person Scott Munro    schedule 15.05.2015
comment
почему бы не использовать web.config?!! - person Mojtaba Pourmirzaei; 24.12.2016
comment
@MojtabaPourmirzaei Потому что не все системные администраторы. Вот и вся причина, по которой у IIS есть пользовательский интерфейс. - person Slava; 10.02.2017
comment
Если вы развертываете веб-сайт, отличный от .NET, в IIS, вам нужно сделать это таким образом (например, приложение Angular). - person Jon Kruger; 04.12.2017

У меня возникла эта проблема сегодня при развертывании значков пользовательского интерфейса Metro4 веб-решения и переключении с CDN на параметр «Скомпилировано».

Мой проект был разработан с использованием платформы WebSharper, но решение в любом случае не зависит от этих деталей реализации.

Короче говоря, я обнаружил, что мне пришлось добавить расширение файла, например. для .ttf внутри секции security под system.webServer из Web.config.

<security>
    <requestFiltering>
        <fileExtensions>
            <add fileExtension=".ttf" allowed="true" />
        </fileExtensions>
    </requestFiltering>
</security>

Тот же параметр конфигурации также доступен в настройках графического интерфейса IIS.

Графический интерфейс IIS

person Giulio    schedule 05.09.2019

Я делаю следующее:

  1. объединение в MVC5
  2. начальная загрузка здания
  3. использование @font-face в бутстрапе

У меня на сервере был развернут файл min.css, этот не-мин файл был включен в комплект. Однажды я удалил файл .min.css. Все сработало.

person JohnWrensby    schedule 12.02.2021