Добавьте отображение MIME в файл web.config для IIS Express.

178

Мне нужно добавить новое сопоставление MIME для расширений файлов .woff в IIS Express.

Если я добавлю следующий фрагмент в «applicationhost.config» IIS Express, он будет работать нормально:

<staticContent lockAttributes="isDocFooterFileName">
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
    ...

Но на самом деле я хотел бы добавить его в мой файл «web.config», чтобы не каждому разработчику приходилось менять свой «applicationhost.config» локально.

Поэтому я снова удалил его из файла «applicationhost.config» и добавил следующий фрагмент в «web.config» проекта:

<system.webServer>
  ...
  <staticContent>
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
  </staticContent>
</system.webServer>

К сожалению, похоже, что это не работает, потому что, когда я пытаюсь получить доступ к файлу .woff, я получаю ошибку HTTP 404.3.

Что я делаю не так?

Мартин Буберл
источник

Ответы:

309

Помещение в "web.config" работает нормально. Проблема была в том, что я неправильно понял тип MIME. Вместо font/x-woffили font/x-font-woffдолжно быть application/font-woff:

<system.webServer>
  ...
  <staticContent>
    <remove fileExtension=".woff" />
    <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
  </staticContent>
</system.webServer>

См. Также этот ответ относительно типа MIME: https://stackoverflow.com/a/5142316/135441

Обновление 4/10/2013

Спецификация теперь является рекомендацией, а тип MIME официально: application/font-woff

Мартин Буберл
источник
2
Fwiw, как добавить mime-типы с IIS7 Web.config и 404 ошибки в IIS7 для встроенных файлов шрифтов .woff . Вуаля, хоть и на год опаздываю на вечеринку.
ruffin
5
Согласно ссылке, обновленный тип MIME теперь должен иметь вид: application / font-woff (а не устаревший application / x-font-woff).
Longda
1
@ longda Спасибо за этот совет! Я обновил ответ, чтобы отразить это.
Мартин Буберл
Этот метод определения пользовательских типов MIME в web.config работает только в IIS Express? Я пробовал это в файле web.config, развернутом в IIS 6, и он не работает (выбрасывает 404). Если я добавляю тип MIME через консоль диспетчера IIS, он работает.
Вальтер Стабош
@WalterStabosz Вышесказанное работает для IIS и IIS Express 7+. Если вы используете IIS 6, вам необходимо настроить mime-типы на сервере, см. Раздел Настройка mime-типов в IIS 6 .
Мартин Буберл
59

Если кто-то сталкивается с такими ошибками, как Ошибка: невозможно добавить дубликат записи коллекции типа «mimeMap» с атрибутом уникального ключа и / или другие сценарии перестают работать при выполнении этого исправления, это может помочь сначала удалить его следующим образом:

<staticContent>
  <remove fileExtension=".woff" />
  <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>

По крайней мере, это решило мою проблему

ястреб
источник
1
Спасибо, это добавляет безопасности при развертывании :)
rdmptn
3
Добавьте это в мой список функций, которые мне нравятся в IIS.
QueueHammer
1
Если сервер уже содержит тип MIME, его указание в файле web.config, вероятно, приведет к дублированию исключения.
Человек
19
<system.webServer>
     <staticContent>
      <remove fileExtension=".woff"/>
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
    </staticContent>
  </system.webServer>
Mohamed.Abdo
источник
6

Я знаю, что это старый вопрос, но ...

Я просто заметил, что мой экземпляр IISExpress не обслуживает файлы woff, поэтому я не искал (нашел это), а затем обнаружил:

http://www.tomasmcguinness.com/2011/07/06/adding-support-for-svg-to-iis-express/

Я предполагаю, что моя установка имеет поддержку SVG, так как у меня не было проблем с этим. Но инструкции можно легко изменить для woff:

  • Откройте консольное приложение с правами администратора.
  • Перейдите в каталог IIS Express. Это живет в Program Files или Program Files (x86)
  • Запустите команду:

    appcmd set config / section: staticContent / + [fileExtension = 'woff', mimeType = 'application / x-woff']

Решить мою проблему, и я не возиться с какой - то вшивой конфигурации (например , мне пришлось добавить поддержку PUTи DELETEглаголов). Ура!

JayC
источник
4

Спасибо за этот пост. Я получил это с помощью шаблонов усов в моем проекте asp.net mvc, я использовал следующее, и это сработало для меня.

<system.webServer>   
  <staticContent>
   <mimeMap fileExtension=".mustache" mimeType="text/html"/>
  </staticContent>
</system.WebServer>
Даман Сингх
источник
3

Я не пользуюсь IIS Express, но развиваюсь под моим Local Full IIS 7.

Так что, если кто-то еще пытается здесь сделать это, мне нужно было добавить mime-тип для woff через IIS Manager.

Типы MIME >> Нажмите Добавить ссылку справа, а затем введите Extension: .woff Тип MIME: application / font-woff

Натан Пратер
источник
Спасибо, это помогло мне снова запустить проект. Со мной все было в порядке с IIS7.5, но я получил Win8 и IIS8, и сопоставления в файле web.config сайта дублировались с конфигурацией IIS, что приводило к ошибкам для любого запрашиваемого статического ресурса. Я удалил дубликаты, и теперь все в порядке.
rdmptn
3

Чтобы решить эту проблему, дважды щелкните параметр конфигурации «Типы MIME», выбрав корневой узел IIS на левой панели, и нажмите ссылку «Добавить ...» на панели «Действия» справа. Это вызовет следующий диалог. Добавьте расширение файла .woff и укажите «application / x-font-woff» в качестве соответствующего типа MIME:

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

То же самое для woff2 с применением / x-font-woff2

Тарун Гупта
источник
0

У меня была проблема с получением приложения ASP.NET 5.0 / MVC 6 для обслуживания статических двоичных типов файлов или просмотра виртуальных каталогов. Похоже, что это теперь делается в Configure () при запуске. См. Http://docs.asp.net/en/latest/fundamentals/static-files.html для быстрого ознакомления.

Брайан Вирт
источник