捆绑的脚本/ css无法识别

时间:2017-03-23 09:51:27

标签: asp.net-mvc bundling-and-minification asp.net-optimization

我是Bundling和minification的新手,我尝试在我的MVC项目中第一次实现它。

我添加了一个BundleConfig.cs文件:

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        //libs scripts
        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/libs/jquery/jquery-{version}.js",
        "~/Scripts/libs/jquery/jquery-ui-{version}.js",
        "~/Scripts/libs/jquery/jquery.mask*",
        "~/Scripts/libs/jquery/jquery.validate*"));

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

        //site scripts
        bundles.Add(new ScriptBundle("~/bundles/site").Include(
                    "~/Scripts/site/*.js"));

        bundles.Add(new StyleBundle("~/Content/site/").Include("~/Content/site/*.css"));
    }
}

并在Global.asax中添加:

BundleConfig.RegisterBundles(BundleTable.Bundles);

然后我在Layout页面中渲染了scripts / css:

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title</title>
    @Styles.Render("~/Content/site/Fonts.css")
    @Styles.Render("~/Content/site/Site.css")
    @RenderSection("styles", required: false)

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/ko")
    @Scripts.Render("~/bundles/site")
    @RenderSection("scripts", required: false)
</head>

但是这不起作用,我不断收到所有类型的错误,表明脚本和css没有被识别。

例如:

  

未捕获的ReferenceError:未定义jQuery

我做错了什么?

2 个答案:

答案 0 :(得分:0)

在这里看到你要添加2次所有脚本文件,

您已添加引用您的包jquery,ko和site。

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/ko")
@Scripts.Render("~/bundles/site")

然后无需再次添加这些文件。

<script src="~/Scripts/Libs/jquery/jquery-3.1.1.min.js"></script>
<script src="~/scripts/libs/jquery/jquery-ui-1.12.1.min.js"></script>
<script src="~/Scripts/Libs/jquery-mask/jquery.mask.min.js"></script>
<script src="~/Scripts/Libs/knockout/knockout-3.4.1.js"></script>
<script src="~/Scripts/Site/Site.js"></script>

答案 1 :(得分:0)

根据@BasantaMatia给我这个想法的评论,设置:

BundleTable.EnableOptimizations = true

在Global.asax文件中,在:

之后
BundleConfig.RegisterBundles(BundleTable.Bundles);

解决了这个问题。