ASP.Net MVC JS / CSS не работает при развертывании - PullRequest
4 голосов
/ 05 марта 2012

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

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

Ответы [ 3 ]

3 голосов
/ 06 марта 2012

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

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

2 голосов
/ 05 марта 2012

Пакеты подаются через URL без расширений, такие как:

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+, который имеет эту функцию по умолчанию при работе в режиме интегрированного конвейера.

0 голосов
/ 10 августа 2015

Моя проблема была в файле 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:)

...