Ошибка конфигурации AngularJS Bundle (angular-sanitize.js) - PullRequest
0 голосов
/ 19 октября 2018

System.Web.HttpException: контроллер для пути '/bundles/angular/angular-resource.min.js.map' не найден или не реализует IController.

Эта ошибка возникает при каждой загрузке страницы в моем приложении.Так как я не связываю / минимизирую в Debug, это происходит только в QA / Dev и Production

Я пробовал это: угловой ресурс ошибочно принят как контроллер C # MVC (как добавлениеСкрипт .min встраивается в index.cshtml и другие предложения)

Я прочитал это: MSDN: Объединение и сокращение

Вотсоответствующий код:

BundleConfig.cs

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
#if (!DEBUG)
        BundleTable.EnableOptimizations = true;
        bundles.UseCdn = true;
#endif

        bundles.Add(new ScriptBundle("~/bundles/jquery/script")
            .Include(
                "~/Scripts/jquery-{version}.js",
                "~/Scripts/jquery-ui-{version}.js",
                "~/Scripts/jquery.validate*",
                "~/Scripts/jquery.signalR-{version}.js"
                )
            );

        bundles.Add(new ScriptBundle("~/bundles/angular/script")
            .Include(
                "~/Scripts/angular.js",
                "~/Scripts/ui-bootstrap-modal.js",
                "~/Scripts/angular-animate.js",
                "~/Scripts/angular-mocks.js",
                "~/Scripts/angular-route.js",
                "~/Scripts/angular-resource.js",
                "~/Scripts/angular-sanitize.js",
                "~/Scripts/angular-datepicker.js"
                )
            );

        bundles.Add(new ScriptBundle("~/bundles/application/script")
            .IncludeDirectory("~/app", "*.js", true)
            );

        //Markup removed for clarity.
    }
}

index.cshtml

@Scripts.Render("~/bundles/jquery/script")
@Scripts.Render("~/bundles/angular/script")

@Scripts.Render("~/bundles/application/script")

//Markup removed for clarity.

Пути к каталогам

(Project.Web)/Scripts/angular-{whatever}.js
(Project.Web)/Scripts/angular-{whatever}.min.js
(Project.Web)/Scripts/angular-{whatever}.min.js.map

Сюда, конечно, входит угловая дезинфекция

Я также пытался удалить и включить

//# sourceMappingURL=angular-sanitize.min.js.map

из angular-sanitize.min.js

Если вам нужна дополнительная информация - оставьте комментарий!Спасибо

1 Ответ

0 голосов
/ 20 октября 2018

Изменение параметра virtualPath метода BundleCollection.Add () решило эту проблему.

Изменено это:

    bundles.Add(new ScriptBundle("~/bundles/angular/script")
        .Include(
            "~/Scripts/angular.js",
            "~/Scripts/ui-bootstrap-modal.js",
            "~/Scripts/angular-animate.js",
            "~/Scripts/angular-mocks.js",
            "~/Scripts/angular-route.js",
            "~/Scripts/angular-resource.js",
            "~/Scripts/angular-sanitize.js",
            "~/Scripts/angular-datepicker.js"
            )
        );

    @Scripts.Render("~/bundles/angular/script")

На это:

    bundles.Add(new ScriptBundle("~/Scripts/angular")
        .Include(
            "~/Scripts/angular.js",
            "~/Scripts/ui-bootstrap-modal.js",
            "~/Scripts/angular-animate.js",
            "~/Scripts/angular-mocks.js",
            "~/Scripts/angular-route.js",
            "~/Scripts/angular-resource.js",
            "~/Scripts/angular-sanitize.js",
            "~/Scripts/angular-datepicker.js"
            )
        );

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

ЕслиКто-нибудь понимает всю сложность BundleCollection, пожалуйста, сообщите нам, почему это решение сработало.

РЕДАКТИРОВАТЬ

Если вы ПРОСТО извлекаете угловую очистку, например, так:

    bundles.Add(new ScriptBundle("~/Scripts/angular")
        .Include(
            "~/Scripts/angular-sanitize.js"
            )
        );

Тогда возникает ошибка

System.Web.HttpException: контроллер для пути '/bundles/angular-resource.min.js.map' не найден или не реализует IController.

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