asp.net-mvc - 以错误的顺序捆绑加载脚本
问题描述
我在jQuery is not defined error
jQuery 之前加载了一个来自 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,但可能是错误的,它会首先处理包中显式命名的脚本,然后是符号命名的脚本。尽管这些都是明确命名的脚本。
有什么我遗漏的东西或一些关于如何解决这个问题的解决方案吗?
解决方案
我最终使用了这里的答案:https ://stackoverflow.com/a/11981271/4201348
所以几乎我定义了我自己的 BundleOrderer 调用AsIsBundleOrder
,它实现IBundleOrderer
了只是按原样返回文件,并将其设置为要在 BundleConfig 中使用的排序器。
这行得通,尽管仍然没有给我一个完整的答案,为什么(我认为的重要原因)默认排序器仅在我使用 jQuery 的缩小版本时才将 jQuery validate 提升为在 jQuery 之前。
推荐阅读
- bash - 如何从我的数据集中采样 50 个随机文件,每个文件在 shell 脚本中具有相同的概率?
- c++ - While 循环在插入排序中完美运行,但 For 循环没有按预期工作,而不是 while 循环
- r - 无法在R中的字符串内包含双引号
- node.js - 导入 ES 模块
- arrays - 具有 50 个游戏对象但仅显示 10 个对象的统一数组
- c# - 如何设计:具有多线程信号的单个阻塞工作者
- android - API 31 上是否有提供文件关联的官方方式,可能使用 pathSuffix/pathAdvancedPattern?
- flutter - 我怎样才能改变那个紫色的东西的颜色?
- expo - 如何将计费权限添加到博览会托管应用程序?
- firebase-remote-config - Firebase A/B 测试离线行为