MVC + IIS7 = проблема CSS
У меня есть веб-сайт, работающий через IIS7 в Vista. Сайт работает на порту 88, поэтому http://localhost:88 должен отображать представление по умолчанию/Главная/Индекс.
Это работает правильно, как и все другие виды.
Однако одна проблема резидентна. Мои пути script указывают на /Scripts/ [FILE] и мои пути CSS указывают на /Content/ [FILE]. Мое предположение заключалось в том, что папка /Content or/Scripts всегда будет в корне сайта, так как я не намерен запускать этот сайт в настройках виртуального каталога. Всякий раз, когда страницы отображаются, у них нет CSS или script! Таким образом, все выглядит неуловимо, и скрипты, очевидно, не работают, поэтому многие из них тоже не работают.
Это очень странная проблема, и я уверен, что это результат моего отсутствия знаний о хостинге вещей под IIS7. Я был бы признателен за любую помощь, которую мог бы предложить любой. Большое спасибо!
Ответы
Ответ 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" /" >