我从jQuery中加载jQuery validate获得jQuery is not defined error
。
我不确定这是否与使用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,但可能是错的,它将首先在bundle中处理显式命名的脚本,然后用符号命名脚本。虽然这些都是明确命名的脚本。
我有什么遗漏或解决方法可以解决这个问题吗?
答案 0 :(得分:1)
我最后使用了这里的答案:https://stackoverflow.com/a/11981271/4201348
所以我定义了我自己的名为AsIsBundleOrder
的BundleOrderer,它实现了IBundleOrderer
,只是按原样返回文件,并将其设置为BundleConfig中使用的订货人。
虽然仍然没有给我一个完整的答案,但为什么(在我看来这个重要原因)默认的orderer只是在我使用jQuery的缩小版本时才将jQuery验证提升到jQuery之前。< / p>