Как удалить ошибку о глификонах-халфлингах-regular.woff2 не найдено

Приложение ASP.NET MVC4 Bootstrap 3 работает от Microsoft Visual Studio Express 2013 для веб-среды IDE.

В консоли Chrome всегда отображается ошибка

http://localhost:52216/admin/fonts/glyphicons-halflings-regular.woff2
Failed to load resource: the server responded with a status of 404 (Not Found)

Этот файл существует в каталоге шрифтов в обозревателе решений. Для действия сборки установлено значение "Контент", а "Копировать в выходной каталог" - "Не копировать, как в других файлах шрифтов". Bootstrap 3 добавляется к решению с использованием NuGet. Как исправить это, чтобы эта ошибка не возникала? Приложение хорошо отображает значки Glyphicon и FontAwesome. Эта ошибка всегда возникает при запуске приложения.

Ответ 1

Эта проблема возникает из-за того, что IIS не знает о woff и  woff2 MIME файлы.

Решение 1:

Добавьте эти строки в ваш проект web.config:

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

Решение 2:

На странице проекта IIS:

Шаг 1. Перейдите на домашнюю страницу IIS вашего проекта и дважды щелкните кнопку MIME Types:

Step 1

Шаг 2: Нажмите кнопку Add в меню Actions: Step 2

Шаг 3: В середине экрана появляется окно, и в этом окне вам нужно добавить две строки из решения 1: Step 3

Ответ 3

Добавьте это в свой html, если у вас есть только доступ к html:

<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">

Ответ 4

Я пробовал все предложения выше, но моя фактическая проблема заключалась в том, что мое приложение искало папку /font и ее содержимое (.woff и т.д.) в app/fonts, но папка my/fonts находилась на том же уровне, что/приложение. Я переместил /fonts под/app, и теперь он отлично работает. Надеюсь, это поможет кому-то другому в роуминге в Интернете ответить.

Ответ 5

Для меня проблема была двоякой: во-первых, версия IIS, с которой я имел дело, не знала о типе .woff2 MIME, только о .woff. Я исправил это с помощью диспетчера IIS на уровне сервера, а не на уровне веб-приложения, поэтому настройки не будут переопределяться при каждом развертывании нового приложения. (В IIS Manager я перешел к MIME-типам и добавил отсутствующий .woff2, а затем обновил .woff.)

Во-вторых, и что более важно, я связывал bootstrap.css вместе с некоторыми другими файлами как "~/bundles/css/site". Тем временем мои файлы шрифтов были в "~/fonts". bootstrap.css ищет глифические шрифты в "../fonts", что переводится как "~/bundles/fonts" - неверный путь.

Другими словами, мой путь к пакету был слишком глубоким. Я переименовал его в "~/bundles/siteCss" и обновил все ссылки на него, найденные в моем проекте. Теперь начальный загрузчик искал в "~/fonts" файлы глифов, которые работали. Проблема решена.

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

Ответ 6

Эта проблема возникает из-за того, что IIS не находит фактическое расположение типов mime файлов woff2. Правильно установите URL-адрес font-face, также сохраните font-family как glyphicons-halflings-регулярно в вашем файле CSS, как показано ниже.

@font-face {
font-family: 'glyphicons-halflings-regular'; 
src: url('../../../fonts/glyphicons-halflings-regular.woff2') format('woff2');}