捆绑和缩小混乱

时间:2017-04-21 21:07:07

标签: javascript c# css asp.net bundling-and-minification

我将ASP.NET Web窗体与母版页一起使用。有这么多活动部件,我无法弄明白。不同的教程使用它的不同部分而省略其他部分,我无法确定需要什么,什么是绒毛。

不同的部分

母版页:在CSS的head部分我有:

<link href="Content/css" rel="stylesheet" />

<asp:PlaceHolder runat="server">     
    <%: Scripts.Render("~/bundles/modernizr") %>
</asp:PlaceHolder>

在关闭body标签之前,我有:

<script src="<%= ResolveUrl("~") %>Scripts/jquery-2.1.1.js"></script>
<script src="<%= ResolveUrl("~") %>Scripts/bootstrap.min.js"></script>
<script src="<%= ResolveUrl("~") %>Scripts/jquery.reject.js"></script>
<script src="<%= ResolveUrl("~") %>Scripts/general.js"></script>

看起来不需要min,但是我需要其中任何一个,而是使用

<script src="Scripts/js"></script> ?

Global.asax.cs :这看起来很简单,在Application_Start方法中注册了包。

void Application_Start(object sender, EventArgs e)
{
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

Web.config

我添加了System.Web.Optimization命名空间和Microsoft.AspNet.Web.Optimization.WebForms程序集。

Bundle.config :我不知道这是为了什么;很多教程都没有提到它?

BundleConfig.cs :除了标准的WebFormsJs,MsAjaxJs和modernizr自定义包之外,我还有以下CSS:

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

这不起作用。我准备为我的JS文件添加类似的东西但是根据this tutorial对我为什么这样做感到困惑,我所需要的只是:

<link href="Content/css" rel="stylesheet" />

据推测,我所需的所有JS文件都是:

<script src="Scripts/js"></script>

在一些教程中,我看到ScriptManager.ScriptResourceMapping.AddDefinition - 这是为了什么?

以下是我的CSS和Scripts文件夹的当前状态 - 我需要所有这些非迷你版本:

http://imgur.com/XwqIOKl

http://imgur.com/q8IdhmB

有人可以帮我把它拼凑起来吗?我在本地运行,调试设置为false。

1 个答案:

答案 0 :(得分:3)

下面是需要为WebForms中的Bundling和Minification配置的每个部分的列表。

这是从运行Bundling and Minification的生产代码库中获取的。

<强>库:

  • Microsoft.AspNet.Web.Optimization

<强>依赖关系:

  • WebGrease
  • Microsoft.Web.Infrastructure(取决于版本)

<强> Global.asax中

void Application_Start(object sender, EventArgs e)
{
    BundleConfig.RegisterBundles(BundleTable.Bundles);

    //Use this if you want to force/test bundling in debug.
    BundleTable.EnableOptimizations = true;
}

BundleConfig类

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/sitejs")
            //Add as many JS libraries you would like to the bundle...
            .Include("~/Scripts/jquery-3.1.1.js")
            .Include("~/Scripts/jquery-migrate-3.0.0.js")
            );

        bundles.Add(new StyleBundle("~/bundles/sitecss")                
            //Add as many CSS files that you would like to the bundle...
            .Include("~/css/jquery-ui.css")
            );
    }
}

母版页

<!-- At the top of the Master Page -->
<%@ Import Namespace="System.Web.Optimization" %>

<!-- Just after the closing `</form>` tag -->

<asp:PlaceHolder runat="server">
    <%: Styles.Render("~/bundles/sitecss") %
    <%: Scripts.Render("~/bundles/sitejs") %
</asp:PlaceHolder>