Загрузка сценариев в неправильном порядке - PullRequest
0 голосов
/ 14 мая 2018

Я получаю jQuery is not defined error от jQuery validate, загружаемого до jquery.

Я не уверен, связано ли это с использованием ASP.net Boilerplate или нет, хотя в конфигурации пакета у меня есть следующее:

 bundles.Add(
            new ScriptBundle("~/Bundles/vendor/js/bottom")
                .Include(
                    "~/lib/json2/json2.js",
                    "~/lib/jquery/dist/jquery.min.js",
                    "~/lib/bootstrap/dist/js/bootstrap.min.js",
                    "~/lib/moment/min/moment-with-locales.min.js",
                    "~/lib/jquery-validation/dist/jquery.validate.min.js",
                    "~/lib/blockUI/jquery.blockUI.js",
                    "~/lib/toastr/toastr.min.js",
                    "~/lib/sweetalert/dist/sweetalert.min.js",
                    "~/lib/spin.js/spin.min.js",
                    "~/lib/spin.js/jquery.spin.js",
                    "~/lib/bootstrap-select/dist/js/bootstrap-select.min.js",
                    "~/lib/jquery-slimscroll/jquery.slimscroll.min.js",
                    "~/lib/Waves/dist/waves.min.js",
                    "~/lib/push.js/push.min.js",
                    "~/Abp/Framework/scripts/abp.js",
                    "~/Abp/Framework/scripts/libs/abp.jquery.js",
                    "~/Abp/Framework/scripts/libs/abp.toastr.js",
                    "~/Abp/Framework/scripts/libs/abp.blockUI.js",
                    "~/Abp/Framework/scripts/libs/abp.spin.js",
                    "~/Abp/Framework/scripts/libs/abp.sweet-alert.js",
                    "~/lib/flatpickr/dist/flatpickr.min.js",
                    "~/js/admin.js",
                    "~/js/main.js",
                    "~/Scripts/jquery.signalR-2.2.3.js",
                    "~/Views/Shared/_Layout.js"
                )
            );

Итак, я использую минимизированную версию jQuery и минимизированную версию jQuery.Validate.Как только я использую минимизированную версию jQuery и загружаю страницу, jquery.validate.min.js является первым скриптом, который загружается и, как и ожидалось, выдает jQuery is not defined. error. Хотя, как только я не использую минимизированнуюверсия jQuery (jquery.js), сценарии загружаются в правильном порядке.

Использует ли ASP.NET Boilerplate какой-либо пользовательский порядок файлов в комплектах, о которых я не знаю?Я верю, что MVC, но может ошибаться, что он будет обрабатывать сценарии с явно именованными именами сначала в комплекте, а затем сценарии с символическими именами.Хотя это все сценарии с явно именованными именами.

Что-то мне не хватает или какое-то решение о том, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 15 мая 2018

Я закончил тем, что использовал ответ отсюда: https://stackoverflow.com/a/11981271/4201348

Так что в значительной степени я определил свой собственный BundleOrderer с именем AsIsBundleOrder, который реализует IBundleOrderer, который просто возвращал файлы как есть, и установил это какзаказчик для использования в BundleConfig.

Это работает, хотя все еще не дает мне полного ответа на вопрос, ПОЧЕМУ (по-моему, важная причина) заказчик по умолчанию продвигал jQuery validate до jQuery, только когда я использовал уменьшенную версиюJQuery.

...