MVC 4 BundleConfig没有创建脚本引用

时间:2013-07-15 09:43:16

标签: jquery asp.net-mvc-4

我正在使用bundleconfig.cs类向我的应用添加一些jQuery脚本文件。

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js",
                    "~/Scripts/jquery-ui-{version}.js",
                    "~/Scripts/jquery.mCustomScrollbar.min.js",
                    "~/Scripts/jquery.mousewheel.min.js",
                    "~/Scripts/jtable/jquery.jtable.js"));

当我运行我的应用程序并检查页面源时,只引用了一些脚本文件:

<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="/Scripts/jquery-ui-1.10.3.js"></script>
<script src="/Scripts/jtable/jquery.jtable.js"></script>
<script src="/Scripts/jquery-migrate-1.2.1.min.js"></script>

为什么会这样?我可以通过手动将脚本引用直接添加到_Layout.cshtml来解决此问题,但这不是最佳实践。

2 个答案:

答案 0 :(得分:14)

.min 部分已由MVC处理 - 它将自动包含用于调试模式的 .js 文件和 .min.js 文件对于发布模式。

只需下载未经启发的 jquery.mCustomScrollbar.min.js 版本并将其放入您的脚本目录中,然后将其引用为: 的 jquery.mCustomScrollbar.js

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js",
                    "~/Scripts/jquery-ui-{version}.js",
                    "~/Scripts/jquery.mCustomScrollbar.js",
                    "~/Scripts/jquery.mousewheel.js",
                    "~/Scripts/jtable/jquery.jtable.js"));
然后,MVC将为Debug / Release

加载适当的脚本

答案 1 :(得分:2)

可能是因为你没有启用捆绑。 尝试将编译时的调试属性值更改为false

<compilation debug="false" targetFramework="4.0" />

或手动启用:

BundleTable.EnableOptimizations = true;