2013-09-19 2 views
52

Я пытаюсь добавить загрузочный бокс glyphicons-halflings-regular.svg на свой веб-сайт. Локально все работает отлично, но на Azue у меня есть ошибки 404:404 на статическом содержимом (svg, woff, ttf) на Azure

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

или когда я добавляю ниже staticContent разделе моего web.config

<staticContent> 
    <remove fileExtension=".woff" /> 
    <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" /> 
    <remove fileExtension=".ttf" /> 
    <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" /> 
    <remove fileExtension=".svg" /> 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
</staticContent> 

Я получил эту ошибку:

The controller for path '/Content/fonts/glyphicons-halflings-regular.woff' was not found or does not implement IController.

Как правильно настроить сайт ASP.NET, чтобы избежать ошибок выше?

+0

Как вы печатаете на Azure? Является ли файл определенно там? – levelnis

+0

Использование git. Более того, файл в той же папке (gif-изображения) я могу без проблем получить доступ –

ответ

5

я не включил файлы шрифтов в растворе. Это вызвало то, что публикационный веб-сайт не содержит эти файлы.

0

Вы исправили пути в файле css, ссылающиеся на файлы шрифтов? Bootstrap предполагает, что файл css находится внутри каталога css, а шрифты находятся внутри каталога fonts на том же уровне, что и css-directory.

При запуске в Azure сайт, вероятно, работает в режиме Release. Это означает, что ваш css и javascript будут уменьшены и объединены. Иногда это может нарушить вашу настройку.

Я сделал следующие настройки при включении начальной загрузки в моих проектах:

Распакуйте начальной загрузки файлов в каталоге/Content.

Добавьте следующие строки в App_Start/BundleConfig.cs

bundles.Add(new StyleBundle("~/Content/bootstrap/css/bundle") 
.Include("~/Content/bootstrap/css/bootstrap.css")); 
bundles.Add(new ScriptBundle("~/Content/bootstrap/js/bundle") 
.Include("~/Content/bootstrap/js/bootstrap.js")); 

Добавьте следующие строки для просмотра/Shared/_Layout.cshtml

@Styles.Render("~/Content/bootstrap/css/bundle") 
@Scripts.Render("~/Content/bootstrap/js/bundle") 

Обратите внимание, что JQuery должен быть включен перед Bootstrap JS расслоение.

http://hj-dev.blogspot.no/2013/02/add-twitter-bootstrap-to-mvc4.html

3

Если вы используете непрерывное развертывание на Azure, убедитесь, что «действие сборки» всех файлов, которые вам нужны, это «Содержание», а не «Нет».

+0

У меня возникла аналогичная проблема с файлами LESS, но я не понимаю почему. Можете ли вы уточнить? – RationalGeek

65

Я столкнулся с той же проблемой с файлом .woff. Решение с добавлением, что расширение для web.config работает отлично:

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

(см ORYGINAŁ решение: http://www.codepal.co.uk/show/WOFF_files_return_404_in_Azure_Web_Sites)

+0

необходимо добавить это для обслуживания файла JSON.Используется: '' – markiyanm

+3

Мне пришлось добавить это с помощью 'fileExtension = woff2' –

+0

Отличная работа @eldi 43 SOF upvotes и 644 общих точек SOF. – JoshYates1980

9

Когда я поставил предложенные строки в web.config это не сработало. Вместо этого я помещал следующие строки в Web.config (обратите внимание на заглавную букву)

<configuration> 
    <system.webServer> 
     <staticContent> 
      <mimeMap fileExtension="woff" mimeType="application/font-woff" /> 
      <mimeMap fileExtension="woff2" mimeType="application/font-woff" /> 
     </staticContent> 
    </system.webServer> 
Смежные вопросы