在ASP.NET中捆绑单个文件有什么cost/benefits?

What are the cost/benefits of bundling a single file in ASP.NET?

我正在使用 asp.net mvc5 创建一个网站,我需要将一个特定的 css 和 js 文件添加到单个页面。我的问题是,为单个 css 或 js 文件创建新包有什么好处?或者捆绑单个文件是不好的做法,我不应该这样做?

下面的代码是我所说的不捆绑与捆绑单个文件的意思:

Traditional Method:
<link href="/content/css/foo.css" rel="stylesheet"/>
<script src="~/content/js/bar.min.js"></script>

Bundle Method:
bundles.Add(new ScriptBundle("~/bundles/bar").Include(
    "~/content/js/bar.min.js"));

bundles.Add(new StyleBundle("~/content/foobundle").Include(
     "~/content/css/foo.css"));

此问题仅涉及捆绑单个文件。就像我的情况一样,我使用的日期选择器插件仅在我的 ASP.NET MVC 应用程序的一个页面上使用,因此将 css 和 js 文件添加到我的应用程序中没有意义整个网站包。

这是一个很有价值的功能,在生产环境中更有价值。话虽这么说,在我正在进行的项目中 - 我们使用该功能而不考虑文件数量。

这个 SO 答案真的很好:

What is the benefit of ASP.NET bundling and minification in runtime?

首先,捆绑是一劳永逸的事情,所以我不会过多关注捆绑的性能成本。换句话说,第一次请求 bundle 时,必须创建它,但每个后续请求都只是静态地提供先前创建的文件(假设您不更改 bundle)。

捆绑单个文件是否有价值?好吧,这取决于那个文件。它有多大?是不是已经最小化了?如果它是一个大的、未最小化的文件,那么是的,将它捆绑在一起非常有价值,因为捆绑版本将是一个较小的文件大小。对于多个文件当然更明显,因为您不仅减少了文件大小,还减少了请求。但是,我仍然建议您始终只使用捆绑包。就像我上面说的,捆绑的成本只发生在第一个请求上,如果你真的关心它,在你发布网站后,you 总是可以请求。然后,在您更改捆绑包之前,将静态处理每个进一步的请求。