为什么我的Scripts.RenderSection不能用于jqGrid?

时间:2012-09-17 19:53:19

标签: html asp.net-mvc-4 asp.net-optimization bundles

我正在使用Visual Studio 2012和MVC 4,在我的_Layout.cshtml中,我有以下内容:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/jquery")
        @Scripts.Render("~/bundles/jqueryui")
        @Scripts.Render("~/bundles/jqgrid")

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

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

在BundleConfig.cs中我有

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        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/jqgrid").Include(
            "~/Scripts/jquery.jqGrid.min.js"));
    }
}

我已经检查了三次,我的脚本文件夹确实包含了jquery.jqGrid.min.js,但它没有被包含。

我的Html头像:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <link href="/Viper/Content/css" rel="stylesheet"/>

    <script src="/Viper/Scripts/jquery-1.8.1.js"></script>

    <script src="/Viper/Scripts/jquery-ui-1.8.23.js"></script>

</head>

为什么没有添加这个?

2 个答案:

答案 0 :(得分:7)

debug = true时的默认行为是忽略* .min.js(我们正在考虑修复这个问题)。

目前,最简单的方法是将文件重命名为jquery.jqGrid.js

答案 1 :(得分:1)

如果您更改了捆绑包定义:

bundles.Add(new ScriptBundle("~/bundles/jqgrid").Include("~/Scripts/jquery.jqGrid.min.js"));

为:

bundles.Add(new ScriptBundle("~/bundles/jqgrid").Include("~/Scripts/jquery.jqGrid.*"));

它会像伤害一样起作用。

因此,出于调试目的,将加载jquery.jqGrid.src.js,同时在发布配置中运行应用程序时,将加载jquery.jqGrid.min.js。