MVC + IIS7 = CSS проблема - PullRequest
       22

MVC + IIS7 = CSS проблема

11 голосов
/ 09 декабря 2008

У меня есть веб-сайт, работающий через IIS7 в Vista. Сайт работает на порту 88, поэтому http://localhost:88 должен отображать представление по умолчанию / Home / Index.

Это работает правильно, как и все другие виды.

Однако одна проблема является резидентной. Мои пути сценариев указывают на / Scripts / [FILE], а мои пути CSS указывают на / Content / [FILE]. Я предполагал, что папка / Content или / Scripts всегда будет находиться в корне сайта, поскольку я не собираюсь запускать этот сайт в настройках виртуального каталога. Всякий раз, когда страницы отображаются, они не имеют CSS или сценарий! Так что все выглядит шатко, и сценарии, очевидно, не работают, следовательно, многие виды также не работают.

Это очень странная проблема, которая, я уверен, является результатом моего недостатка знаний о размещении вещей под IIS7. Буду признателен за любую помощь, которую может предложить любой. Большое спасибо!

Ответы [ 5 ]

12 голосов
/ 10 декабря 2008

Я надеюсь, что продолжение этой темы выражает готовность сделать так, чтобы эта проблема никого не выбивала из обрыва. На различных форумах есть много документации по решению этой проблемы в Vista, но я не смог найти аналогичных статей для 2K8. Как указано в этом сообщении на форуме , я смог решить проблему на компьютере с Vista. Увы, подобное исполнение не смогло решить проблему на 2K8.

Я убедился, что StaticFileHandler был включен в web.config , как это предлагается в этом сообщении в блоге на apijunkie.com . Тем не менее, не повезло.

Уточнение Не повезло, здесь - Моя серверная функциональность была безупречна. Все маршруты MVC работают как чемпион. Просто все CSS и JS рендеринг не удался. Когда браузер указывал прямо на файлы CSS или JS, получаемой страницей был ASP.NET 404, а не обычная страница 404.

Итак, я вошел в диспетчер IIS7 и в диалоговое окно «Сопоставления обработчиков». Я добавил новый обработчик, который указал тип System.Web.StaticFileHandler и дал ему расширение * .CSS. Затем я повторил это для файлов * .JS, * .PNG и * .GIF. Когда я обновил сайт в браузере, все выглядело правильно. Снимки экрана ниже демонстрируют этот процесс.

Окно отображений обработчика:

handler mappings
(источник: windows.net )

Добавление нового управляемого обработчика

alt text
(источник: windows.net )

Это решило проблему, и теперь у меня есть прекрасно работающее приложение MVC, размещенное в W2K. Время для Гиннесса.

7 голосов
/ 30 ноября 2010

В Панели управления перейдите к разделу «Включение или отключение функций Windows», затем выберите «Статическое содержимое» в узле «sub-sub-sub» IIS.

3 голосов
/ 09 декабря 2008

Проблема была в том, как я создал приложение. Согласно ветке форума , расположенной здесь , мне нужно было выбрать «Classic .NET AppPool», чтобы решить мою проблему. Должен любить прогресс!

0 голосов
/ 24 декабря 2014

Проблема заключается не только в авторизации / аутентификации, но и в модулях, которые теперь управляют IIS. Внутри system.webServer у вас должно быть runAllManagedModulesForAllRequests , установленное на false , чтобы вы могли без проблем отображать все изображения / css при аутентификации.

На веб-сайтах ASP.NET значение runAllManagedModulesForAllRequests ранее должно было быть установлено в значение true для поддержки маршрутизации. Однако после обновления IIS 7 с помощью пакета обновления значение runAllManagedModulesForAllRequests можно установить равным false или опустить при работе с маршрутизацией ASP.NET.

Ref. http://www.iis.net/configreference/system.webserver/modules

P.S. Не забудьте добавить следующие строки в раздел AppSettings моего файла web.config:

0 голосов
/ 10 декабря 2008

Оказывается, что это не исправление в Windows 2008. Если у кого-то есть какие-либо идеи о том, как решить эту проблему, это будет оценено.

Подробная проблема:

Windows 2K8 Server, IIS7. Включен конвейер и установлена ​​поддержка статических файлов. MVC работает, но CSS не рендерится.

Какого черта?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...