如何从我的项目中排除这些js和css文件?

时间:2016-04-21 16:21:05

标签: javascript css asp.net-mvc bundle

这些文件会自动捆绑在MVC项目中。我在VS 2013中创建了一个新的MVC测试项目,并验证了下面列出的那些项目,而不是在BundleConfig中添加明确的那些项目,它们在bundles.Add()方法中列出的那些之前自动包含在bundle中。

在BundleConfig的RegisterBundles()方法的第一行设置断点,在将其他明确列出的文件添加到捆绑包之前,按文件顺序显示它们。奇怪的是,捆绑计数为0,但文件顺序中列出了7个。这也支持Visual Studio“幕后”添加它们的事实,因为在C#代码中添加文件之前,文件就在那里。

其中大多数未列在BundleConfig中,并且未使用IE的开发人员工具显示在网络活动中。看起来他们应该出现在网络流量中。如果有人知道的话,我会对他们为什么不出现的解释感兴趣。

在下面方法的第一行中调用bundles.Clear()并没有删除Visual Studio包含的内容,即使这是Clear()的意图。看来微软决定不应该清除它们。

这些可能无法删除,但我想知道是否有人知道该怎么做。我们在生产应用程序中不需要所有这些,如果可能的话我想省略一些。

   public class BundleConfig
{
    // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Clear();

        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.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-*"));

        bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));

        bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/site.css"));

    }
}

在明确添加上述C#中的其他文件之前的捆绑包中:

  • respond.js
  • jszip.min.js
  • reset.css
  • normalize.css
  • Modernizr的 - *
  • 道场。*
  • mootols核*
  • mootools的 - *
  • 的prototype.js
  • protoype - *
  • Scriptaculous的 - *
  • ext.js
  • 分机 - *

开发者工具中列出的文件不包含上述大部分文件:

  • bootstrap.css
  • 的site.css
  • 现代化主义-2.6.2.js
  • 的jquery-1.10.2.js
  • bootstrap.js
  • respond.js

1 个答案:

答案 0 :(得分:1)

这些不属于您的捆绑包。您正在查看BundleCollection.FileSetOrderList Property

  

获取一个列表,该列表指定用于已注册包中文件的默认文件排序。

Screenshot from a default project

正如您所指出的,捆绑计数为0.这些文件不会在“幕后”添加,除非您明确将它们包含在捆绑包中。在场景背后会发生的是,当发生捆绑时,这些文件将在您自己的文件之前进行排序。但是,如果需要,您也可以指定自己的订单。

重新排序捆绑包是捆绑/缩小功能的一部分。有更多细节,包括定义排序in this SO question and answer的代码。