Палец вверх 4
Перевод
Перевод

ASP.Net MVC JS / CSS не работает при развертывании

Я развернул небольшое веб-приложение, написанное на ASP.Net MVC 4. У нас правильно настроены наши пакеты JS / CSS, и они отлично работают локально. Проблема заключается в том, что при развертывании на сервере IIS 6 пакеты не работают. Js / css не загружается, и когда я пытаюсь перейти по ссылке js в скрипте, я получаю 404.

Кто-нибудь развернул MVC 4 на IIS 6 и имел эту работу?

asp.net-mvc-4 asp.net-optimization
задан Shane Courtrille 5 мар. 2012 г., 21:16:20
источник

3 ответа

Решение 3
Перевод
Перевод

Проблема заключалась в том, что мы работали как виртуальный каталог, настроенный для ASP.Net 4.0 на веб-сайте по умолчанию, который был настроен для ASP.Net 2.0.

Мы создали новый веб-сайт и установили его на asp.net 4.0, и все работало отлично. В соответствии с этим постом о Haacked URL- адресах без расширений теперь должно работать только большинство экземпляров IIS 6.

ответ дан Shane Courtrille 6 мар. 2012 г., 0:58:45
источник
Палец вверх 2
Перевод
Перевод

Связки обслуживаются через ссылки без расширений, такие как:

IIS 6 не поддерживает URL-адреса без расширения из коробки. Когда он встречает URL-адрес, заканчивающийся на /js или /css он не имеет ни малейшего представления о том, что ему нужно связать этот URL-адрес с обработчиком aspnet_isapi.dll (ASP.NET).

Вы можете прочитать сообщение в блоге Фила Хаака, в котором он объясняет, как можно настроить IIS 6 для ASP.NET MVC, чтобы включить URL без расширений. Речь идет о ASP.NET MVC 3, но то же самое относится и к ASP.NET MVC 4.

Да, и вы могли бы рассмотреть возможность обновления до IIS 7.0+, который имеет эту функцию по умолчанию при работе в режиме интегрированного конвейера.

ответ дан Darin Dimitrov 5 мар. 2012 г., 21:55:56
источник
Палец вверх 0
Перевод
Перевод

Моя проблема была в файле BundleConfig.cs в App_Start. Мой файл BindleConfig.cs ранее выглядел следующим образом

  bundles.Add(new ScriptBundle("~/Scripts/ui-js").Include(
                                     "~/Scripts/ui-js/jquery.min.1.11.1.js"
                                     , "~/Scripts/ui-js/bootstrap.min.js"
                                     , "~/Scripts/ui-js/bootstrap-slider.js"
                                     , "~/Scripts/ui-js/bootstrap-lightbox.js"
                                     , "~/Scripts/ui-js/common-script.js"
                                     , "~/Scripts/ui-js/html5.js"
                                     , "~/Scripts/ui-js/jquery.colorbox.js"
                                     , "~/Scripts/ui-js/respond.src.js"
                                     , "~/Scripts/ui-js/angular.min.js"
                                     , "~/Scripts/ui-js/bootstrap.js"
                                     ,"~/Scripts/ui-js/jRate.min.js"
                                     , "~/Scripts/ui-js/jcrop.min.js"
                                     ));

И моя страница макета была

@Scripts.Render("~/Scripts/ui-js")

После поиска в Google я нашел решение, так как вы не можете использовать ту же структуру папок для нового виртуального пути ScriptBundle () .

Так что я изменил выше к этому

bundles.Add(new ScriptBundle("~/Scripts/ppScript").Include(
                                     "~/Scripts/ui-js/jquery.min.1.11.1.js"
                                     , "~/Scripts/ui-js/bootstrap.min.js"
                                     , "~/Scripts/ui-js/bootstrap-slider.js"
                                     , "~/Scripts/ui-js/bootstrap-lightbox.js"
                                     , "~/Scripts/ui-js/common-script.js"
                                     , "~/Scripts/ui-js/html5.js"
                                     , "~/Scripts/ui-js/jquery.colorbox.js"
                                     , "~/Scripts/ui-js/respond.src.js"
                                     , "~/Scripts/ui-js/angular.min.js"
                                     , "~/Scripts/ui-js/bootstrap.js"
                                     ,"~/Scripts/ui-js/jRate.min.js"
                                     , "~/Scripts/ui-js/jcrop.min.js"
                                     ));

И на моей странице макета я назвал это

@Scripts.Render("~/Scripts/uiScript")

ПРИМЕЧАНИЕ: вы должны сделать то же самое с вашим пакетом CSS и modernizr :)

ответ дан Nithin Paul 10 авг. 2015 г., 8:18:12
источник