以错误的顺序捆绑加载脚本
Bundle Loading Scripts in wrong order
我从 jQuery 得到一个 jQuery is not defined error
验证在 jquery 之前加载。
我不确定这是否与使用 ASP.net 样板有关,尽管在捆绑配置中我有以下内容:
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 样板文件是否在我不知道的捆绑包中使用任何自定义文件排序?我确实相信 MVC,但可能是错误的,它会首先在包中处理显式命名的脚本,然后是符号命名的脚本。尽管这些都是明确命名的脚本。
有没有我遗漏的东西或关于如何解决这个问题的解决方案?
我最终使用了这里的答案:
几乎我定义了我自己的 BundleOrderer,称为 AsIsBundleOrder
,它实现了 IBundleOrderer
,它按原样返回文件,并将其设置为要在 BundleConfig 中使用的排序器。
这行得通,但仍然没有给我一个完整的答案,为什么(我认为的重要原因)默认订购者只促进 jQuery 验证在 jQuery 之前当我使用 jQuery.
的缩小版本时
我从 jQuery 得到一个 jQuery is not defined error
验证在 jquery 之前加载。
我不确定这是否与使用 ASP.net 样板有关,尽管在捆绑配置中我有以下内容:
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 样板文件是否在我不知道的捆绑包中使用任何自定义文件排序?我确实相信 MVC,但可能是错误的,它会首先在包中处理显式命名的脚本,然后是符号命名的脚本。尽管这些都是明确命名的脚本。
有没有我遗漏的东西或关于如何解决这个问题的解决方案?
我最终使用了这里的答案:
几乎我定义了我自己的 BundleOrderer,称为 AsIsBundleOrder
,它实现了 IBundleOrderer
,它按原样返回文件,并将其设置为要在 BundleConfig 中使用的排序器。
这行得通,但仍然没有给我一个完整的答案,为什么(我认为的重要原因)默认订购者只促进 jQuery 验证在 jQuery 之前当我使用 jQuery.
的缩小版本时