Face II не працює в IIS 8.0


118

У моїй програмі, згенерованої з шрифту Шрифт, у мене є шрифт, я просто не можу змусити його працювати в IIS, він працює в localhost. Я додав статтю програми / шрифту-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;
}

РЕДАКТУЙТЕ СУЧАСНИЙ МАЙМ

Я використовую шрифт IIS 8 MIME за замовчуванням / x-woff


Як ви називаєте це? Ви спробували вибірки зразка в блискавці Font Squirrel?
Ейрбій

Якщо ви використовуєте IIS 8, вам не доведеться додавати тип mime у веб-конфігурацію для WOFF. Насправді це було б більше ймовірності помилки, якщо мати дублікат.
Колін Бекон

@Aibrean так вибір вибірки працює
joetinger

@ColinBacon Я прочитав це після публікації. Тож у мене зараз шрифт / x-woff, це успадковується від IIS 8.0. Але все-таки не пощастить отримати правильний шрифт
joetinger

Відповіді:


259

Приємно бачити, як 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>

2
Я додав, woff2але все ще нічого
joetinger

4
Якщо ви заглянете у свої інструменти для розробників. Чи отримуєте ви 404, коли він намагається отримати файл шрифту? Це так, перевірте правильність шляху та чи маєте ви права переглядати його у своєму браузері.
Колін Бекон

Так, це не так, http://192.168.72.196:85/bundles/Fonts/subway-webfont.woff2я не впевнений, звідки вони отримують папку пакетів. Будь-яка ідея?
joetinger

4
Я припускаю, що ви використовуєте групування та мінімізацію ASP.NET. Якщо ви встановите це в конфігурації пакета BundleTable.EnableOptimizations = true. Ваш місцевий хост повинен поводитись так само, як на виробничому сервері.
Колін Бекон

1
Дякую за всю допомогу, яка зараз працює. Це була комбінація woff2помилки 404 та, що в кінцевому підсумку виявилося неправильною написанням в моєму пакеті. Дякую!
joetinger

79

Для того, щоб шрифти 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, слід очистити кеш браузера перед тим, як перезавантажувати сторінку.


2
Специфікація тепер рекомендує mimeType для woff бути програмою / font-woff .
Стівен

2
Я тільки отримував .woff2 404 питання, і це працювало для мене. Я використовував лише рядки, що стосуються woff2
Francisc0

26

Зауважте, що також можна налаштувати типи MIME в IIS Manager. Просто виберіть веб-сайт, а потім двічі клацніть піктограму MIME Types під IIS на головній панелі.

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

Потім ви побачите список усіх існуючих типів MIME і зможете додавати нові за допомогою посилання Додати ... у правій області.


2
чому б не використовувати web.config,? !!
Mojtaba Pourmirzaei

7
@MojtabaPourmirzaei Тому що не всі - це сисадмін. Ось і вся причина, що IIS має інтерфейс користувача.
Alph.Dev

Якщо ви розгортаєте веб-сайт, який не є NNET в IIS, вам потрібно зробити це таким чином (наприклад, додаток Angular).
Джон Крюгер

0

У мене сьогодні ця проблема виникала під час розгортання піктограм UI веб-рішення Metro4 та переходу з CDN на параметр Compiled.

Мій проект був розроблений за допомогою платформи WebSharper, але рішення все одно не залежить від цих деталей реалізації.

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

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

Цей же параметр конфігурації також доступний у налаштуваннях графічного інтерфейсу IIS

IIS GUI

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.