2014-01-23 1 views
3

Сценарий:IIS Web Fonts, Bootstrap 3 глифы не загружаются с IE9 или 10. Chrome и Firefox работать

Использование IIS 7.5 с приложением MVC4.

Шрифты можно скачать с сервера, если вы перейдете к их абсолютным путям. Нет ошибок 404 на любой шрифт.

Никакие другие ошибки, показывающие в консоли или сети захвата в IE Дев инструментов (или Chrome или Firefox Dev инструменты)

IE9 и IE10 - веб-шрифты не делать не нагрузки. Bootstrap 3 glyph значки делаем нет load.

Firefox и Chrome - веб-шрифты загружаются правильно. Значки значков бутстрапа 3 загружаются правильно.

При запуске сайта локально из сервера Visual Studio 2012 dev сервер загружает все шрифты во всех браузерах. Глифы Bootstrap загружаются правильно во всех браузерах.

Мой CSS код:

@font-face { 
    font-family: 'chunkfiveroman'; 
    src: url('../Content/fonts/chunkfive-webfont.eot'); 
    src: url('../Content/fonts/chunkfive-webfont.eot?#iefix') format('embedded-opentype'), 
      url('../Content/fonts/chunkfive-webfont.woff') format('woff'), 
      url('../Content/fonts/chunkfive-webfont.ttf') format('truetype'), 
      url('../Content/fonts/chunkfive-webfont.svg#chunkfiveroman') format('svg'), 
      url('../Content/fonts/Chunkfive.otf'); 
    font-weight: normal; 
    font-style: normal; 
} 

То, что я пробовал:

Я вручную добавил типы пантомимы на сервер для веб-шрифтов (.otf, .eot, .woff) (.svg и .ttf уже были там).

Я попытался установить типы пантомимы на всех добавленных вручную шрифтов записей много различных способов, основанных на погуглить (приложение/октет-поток, шрифт/OTF и т.д.)

Мой призыв о помощи:

Что еще это может быть? Что-нибудь еще я могу попробовать? Редактировать: См. Ниже. Как заставить IE загружать шрифт из сервера? Опять же, в Firefox и Chrome они загружают шрифт, и он отлично работает.

EDIT:

You can see locally, it downloads the font and it works fine. Вы можете видеть на месте, он загружает шрифт и он работает отлично.

Yet, when uploaded to IIS on the server, it doesn't even attempt to download the font. Однако при загрузке в IIS на сервере он даже не пытается загрузить шрифт.

+0

Вы проверили относительные пути? если ваш доступ к пути, например '/ mycontroller/myaction/myparameter' (который является довольно распространенным по умолчанию asp-контуром) и вашим css сверху, используется, он будет пытаться получить шрифт из'/mycontroller/myaction/content/fonts/chunkfive.otf' и т. д. это либо должен быть абсолютный путь, либо включать в себя еще несколько «../» использовать скрипач или сетевые инструменты в браузере, чтобы посмотреть, к чему он обращается. –

+0

Я не вижу никаких 404 в любом из журналов. Я даже скачал скрипач, но он обеспечивает ту же функциональность, что и захват сети. Кроме того, имейте в виду, что в Chrome и Firefox все это отлично работает. Если это проблема с контуром, эти браузеры тоже не будут работать. – Jordan

ответ

0

Проведя много часов на этом, я решил проблему с помощью браузера Javascript с https://stackoverflow.com/a/9851769/1183321. Как только у меня это было на месте, я просто пошел к прозрачным PNG для текста и глифов, которые мне были нужны, в конкретном шрифте/глифе.

EDIT: Январь 2016

Проблема решена. Корень проблемы находится в настройках безопасности IE. В параметрах Интернета измените настройку домена/IP-адреса вашего сервера на средний или выше и убедитесь, что вы отключили «защищенный режим».

Кроме того, некоторые сайты могут быть настроены как «сайт интрасети», если вы получаете доступ к серверу по его FQDN, а не только по IP.

2

У меня была эта проблема, и я обнаружил, что это происходит из-за минимизации при создании в режиме выпуска.

Вместо того, чтобы загружать файлы вручную с сайта начальной загрузки и настраивать пакет, я использую пакет nuget, который делает это для меня.

Если вы хотите сделать это, выполните следующие действия.

Выполните следующую команду для установки Bootstrap:

Install-Package Twitter.Bootstrap.MVC 

Это загружает все файлы bootrap и включает в себя ниже заранее определенного Bootstrap расслоение конфигурации:

public class BootstrapBundleConfig 
{ 
    public static void RegisterBundles() 
    { 
     // Add @Styles.Render("~/Content/bootstrap") in the <head/> of your _Layout.cshtml view 
     // For Bootstrap theme add @Styles.Render("~/Content/bootstrap-theme") in the <head/> of your _Layout.cshtml view 
     // Add @Scripts.Render("~/bundles/bootstrap") after jQuery in your _Layout.cshtml view 
     // When <compilation debug="true" />, MVC4 will render the full readable version. When set to <compilation debug="false" />, the minified version will be rendered automatically 
     BundleTable.Bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include("~/Scripts/bootstrap.js")); 
     BundleTable.Bundles.Add(new StyleBundle("~/Content/bootstrap").Include("~/Content/bootstrap.css")); 
     BundleTable.Bundles.Add(new StyleBundle("~/Content/bootstrap-theme").Include("~/Content/bootstrap-theme.css")); 
    } 
} 

Вышесказанное также включает в себя комментарии, описывающие, как вынести пакеты.

Я думаю, что исходная ошибка шрифта 404 была вызвана тем, что папка шрифтов находилась на другом уровне до того, что указано в minified css.

Если вы предпочитаете сохранять текущее решение, единственным способом, которым я мог бы исправить 404, было скопировать папку шрифта в корень веб-приложения и сохранить загрузочный CSS-код по умолчанию для ваших шрифтов.

Чтобы проверить его локально, просто удалите debug="true" из своей веб-конфигурации.

+0

Я собираюсь работать над этим сегодня, и я дам вам знать. Спасибо за ваш ответ. – Jordan

+0

Приятный, я удивлен, что больше людей этого не находят. Я ответил очень похожий на другой день, практически идентичный ответ. http://stackoverflow.com/questions/21269884/twitter-bootstrap-glyphicons-do-not-appear-in-release-mode-404/21270771#21270771 – hutchonoid

+0

У меня нет больших надежд, потому что я не испытываю то же самое, что и другое сообщение, которое вы ссылаетесь. В других браузерах все это прекрасно работает. Просто не я. – Jordan

Смежные вопросы