Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

Надеюсь, что продолжение этого потока приведет к готовности убедиться, что эта проблема не сбивает всех с утеса. Там было много документации на разных форумах по решению этой проблемы в 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

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

alt text

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

Ответ 2

На панели управления перейдите в раздел "Включить или отключить функции Windows", а затем установите "Статическое содержимое" в под-югу node IIS.

Ответ 3

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

Ответ 4

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

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

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

Что за черт?

Ответ 5

Проблема не заключается именно в авторизации/аутентификации, а в модулях, которые теперь управляют 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:

< add key = "autoFormsAuthentication" value = "false" /" >

< add key = "enableSimpleMembership" value = "false" /" >