【发布时间】:2018-05-14 19:14:12
【问题描述】:
我从 jQuery 验证中得到一个 jQuery is not defined error 在 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,但可能是错误的,它会首先在包中处理显式命名的脚本,然后是符号命名的脚本。虽然这些都是明确命名的脚本。
有什么我遗漏的东西或者我可以如何解决这个问题的一些解决方案吗?
【问题讨论】:
-
不确定,为什么您会收到订单问题...但还有其他需要验证的地方 - 所有 JS 库都更新了吗?您可以通过 NuGet 包管理器更新它们,您将在那里看到版本。可能是版本不匹配,值得检查。
-
使用
IBundleOrderermsdn.microsoft.com/en-us/library/…,这将确保文件按顺序添加。同样在这个答案中:stackoverflow.com/a/11995916/4851351 -
@st_stefanov 我检查了 NuGet 包管理器更新,唯一的一个是引导程序,因为我没有在这个项目上移动到引导程序 4。 jQuery Validate 和 jQuery 都是最新版本。
-
@poolpro 添加我自己的
IBundleOrderer,它刚刚返回了列表,似乎可行。虽然我觉得它应该是必要的,因为如果我没记错的话,默认的捆绑排序器不会在 jQuery 验证之前提升 jQuery 吗?以及为什么当我使用 jquery 的缩小版时它只在 jQuery 之前推广 jQuery Validate。 -
不需要使用缩小版。 bundles 的特点之一是它们在生产中自动缩小文件,但在调试中使用非缩小版本
标签: asp.net-mvc aspnetboilerplate