blumonde - Ответов: 2

Технологии glyphicons загрузки не отображается после публикации сайта на веб-сервер


When I run my MCV 5 app locally, these Glyphicons work fine. However, after I publish my site to the web server, these glyphicons don't show on the published site.

Below is in my bundleConfig.cs:

bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/font-awesome.css",
"~/fonts/glyphicons-*",
"~/Content/site.css"));

BundleTable.EnableOptimizations = false;

Below is the default font setting of Bootstrap.css version 3.3.7:

@font-face {
font-family: 'Glyphicons Halflings';

src: url('../fonts/glyphicons-halflings-regular.eot');
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}

Does anyone know how I can fix this? The fonts folder is at the root level. Note: I am not using the "min" .css or .js version.


Спасибо.

Что я уже пробовал:

Я попытался переместить путь к папке fonts в папку "Content", но это не решило проблему. Предложения, пожалуйста? Спасибо.

2 Ответов

Рейтинг:
2

Richard Deeming

Во-первых, удалите "~/fonts/glyphicons-*" строка из конфигурации вашего пакета. Это будет пытаться визуализировать необработанные байты файлов шрифтов как CSS, что не будет работать.

Наиболее вероятная проблема заключается в том, что IIS не знает тип MIME для файлов шрифтов. По соображениям безопасности IIS не будет обслуживать ни один файл, где он не знает тип MIME.

Чтобы исправить это, добавьте web.config файл в папку fonts со следующим содержимым:

<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension="eot" mimeType="application/vnd.ms-fontobject" />
            <mimeMap fileExtension="otf" mimeType="application/x-font-opentype" />
            <mimeMap fileExtension="svg" mimeType="image/svg+xml" />
            <mimeMap fileExtension="ttf" mimeType="application/x-font-truetype" />
            <mimeMap fileExtension="woff" mimeType="application/font-woff" />
            <mimeMap fileExtension="woff2" mimeType="application/font-woff2" />
        </staticContent>
    </system.webServer>
</configuration>


blumonde -

@Richard, Спасибо за предложение. Я немного сбит с толку, когда вы говорите: "добавьте файл web. config в папку шрифтов". Я понятия не имею, что вы имеете в виду; у меня есть файл web.config в корне моего проекта. Это тот файл, в который вы предложили мне добавить эти строки mimeMap? Спасибо.

Richard Deeming

Создайте новый файл с именем "web. config" в папке fonts и замените содержимое на пример, который я опубликовал.

blumonde -

Вчера я тоже попытался добавить web.config в папку шрифтов, но это ничего не дало. Спасибо.

blumonde -

Я использовал отладчик браузера Chrome и обнаружил 3 ошибки, касающиеся шрифтов glyphicon. Ошибки имеют статус 403 (запрещены).

Почему им запрещено загружаться на веб-сервер, вы не знаете? Как мне это исправить?

Спасибо.

Richard Deeming

Ответ 403 вызван тем, что IIS не знает о типе MIME файлов шрифтов.

blumonde -

Нужно ли мне сказать веб-мастеру IIS, чтобы он добавил разрешение на шрифт на веб-сервере? Если да, то как это делается? Спасибо.

Richard Deeming

Вам нужно настроить типы MIME - как я объяснил в своем ответе!

blumonde -

Я снова попытался добавить web.config в папку шрифтов с приведенным ниже кодом, но это все равно не сработало:

& lt;конфигурация>
< system. webserver>
& lt;staticcontent>
&ЛТ;mimeMap расширение="СРВ" тип="применение/донгов.МС-fontobject" /&ГТ;
<mimemap fileExtension= "otf" mimeType= "application/x-font-opentype" />
&ЛТ;mimeMap расширение="СВГ" тип="изображения/формат svg+xml-файле" /&ГТ;
<mimemap fileExtension= "ttf" mimeType= "application/x-font-truetype" />
<mimemap fileExtension=" woff "mimeType=" application/font - woff " />
&ЛТ;mimeMap расширение="woff2" тип="применение/шрифтов woff2" /&ГТ;


Richard Deeming

Вам нужно скопировать весь содержание блока кода, начиная с открытия <configuration> тег к закрытию </configuration> метка. Вы пропустили все заключительные теги.

Вы также должны помнить,что XML чувствителен к регистру. <system.webserver> это не то же самое, что <system.webServer>, и <staticcontent> это не то же самое, что <staticContent>. Если вы измените дело, это не сработает.

Убедитесь, что у вас нет проводника Windows, настроенного на скрытие расширений файлов. Если да, то есть шанс, что ваш файл будет называться как-то так web.config.txt; его нужно назвать web.config, без каких-либо дополнительных расширений.

Если он по-прежнему не работает, откройте папку в диспетчере IIS и дважды щелкните значок типов MIME, чтобы увидеть, есть ли какие-либо ошибки.

blumonde -

У меня было все, как ты сказал. Этот сайт отрезал закрывающие теги ( моего предыдущего поста. Кроме того, расширение является правильным. Мы не установлен флажок Скрывать расширения.

Рейтинг:
2

blumonde -

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