网站未加载 jQuery 捆绑包

Website not loading jQuery with bundles

我有一个 MVC5 应用程序,使用 c#,HTML 和 jQuery。

在我的本地主机上一切正常,我没有重大错误。但是,当我发布项目(right-click project -> publish)并将结果发送到 Public 服务器时,到处都是加载错误:

我已经检查了生成的 ZIP 文件,我 100% 确定所有 jQuery 文件都在里面,所以文件没有丢失。

此时我认为可能存在加载问题或其他问题,但我不知道它可能是什么。是什么导致我的服务器无法加载 jQuery?

我的 Bundle.cs 文件:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                    "~/Scripts/jquery-ui-{version}.js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));

        bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                    "~/Scripts/bootstrap.js",
                    "~/Scripts/bootstrap-datepicker.js",
                    "~/Scripts/bootstrap-editable.min.js",
                    "~/Scripts/bootstrap-editable.js",
                    "~/Scripts/bootstrap-switch.js",
                    "~/Scripts/select2.js",
                    "~/Scripts/bootstrapSwitch.js",
                    "~/Scripts/Amaris.XEditable.js",
                    "~/Scripts/bootstrap-modal.js",
                    "~/Scripts/AmarisFeedback.js",
                    "~/Scripts/bootstrap-modalmanager.js"));

        bundles.Add(new ScriptBundle("~/bundles/custom").Include(
            "~/Scripts/custom.js",
            "~/Scripts/fakeauth.js",
            "~/Scripts/jquery.dynatree.js",
            "~/Scripts/TableFilter.js",
            "~/Scripts/PackageScripts.js",
            "~/Scripts/MaterialScripts.js",
            "~/Scripts/PendingTableScripts.js",
            "~/Scripts/NotificationScripts.js"));

        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

        //notfitications for all the family! http://www.jqueryrain.com/?sPi0WIEh
        bundles.Add(new ScriptBundle("~/bundles/notifIt").Include("~/Scripts/notifIt.js"));

这是我加载包的地方:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>@ViewBag.Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
    @RenderSection("head", required: false)
    @RenderSection("head", required: false)
    @Styles.Render("~/Content/css")
</head>

<body>
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/jqueryui")
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/bundles/notifIt")
    @Scripts.Render("~/bundles/bootstrap")
    @Scripts.Render("~/bundles/custom")

    @RenderSection("scripts", required: false)
</body>

问题的根源是VisualStudio本身。 在分析发布项目时由 VS 创建的 ZIP 文件(右键单击 -> 发布)后,我们注意到 ZIP 文件缺少 jQuery 库文件以及其他 JS 文件。

这些文件应该包含在解决方案中,但由于我们无法理解的原因,它们没有。

为了解决这个问题,我们不得不从项目中手动删除受影响的文件(通过将它们复制到安全位置,然后在项目中删除它们),重新编译项目,然后再次添加文件(和重新编译)。

通过这些步骤,VS 并未包含 ZIP 中的所有文件。终于。