这些文件会自动捆绑在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#中的其他文件之前的捆绑包中:
开发者工具中列出的文件不包含上述大部分文件:
答案 0 :(得分:1)
这些不属于您的捆绑包。您正在查看BundleCollection.FileSetOrderList Property:
获取一个列表,该列表指定用于已注册包中文件的默认文件排序。
正如您所指出的,捆绑计数为0.这些文件不会在“幕后”添加,除非您明确将它们包含在捆绑包中。在场景背后会发生的是,当发生捆绑时,这些文件将在您自己的文件之前进行排序。但是,如果需要,您也可以指定自己的订单。
重新排序捆绑包是捆绑/缩小功能的一部分。有更多细节,包括定义排序in this SO question and answer的代码。