MVC 捆绑 - 多个捆绑包中的一个文件

MVC Bundling - one file in more than one bundle

我有 5 个 js 文件:

  1. a1.js
  2. a2.js
  3. a3.js
  4. a4.js
  5. a5.js

bundle1.js 中捆绑在一起,我在 View1.

中使用这个捆绑包

现在我需要在View2.

我可以使用 a3、a5a6 创建一个新的捆绑包,或者将 bundle1 用于 a3 和 a5 并为 a6?

创建新包

哪种方法好?

我认为对此没有正确答案。您还可以考虑在 bundle1 中包含 a6.js,而在 View2 中仅使用 bundle1.js。它已经被浏览器缓存了,所以即使不需要一些单独的 js,也不需要额外的 HTTP 请求。所以基本上将所有脚本都放在一个包中,即使不是所有视图都严格要求,也可以放在布局中。

但是,如果您必须在使用 a3、a5 和 a6 创建新捆绑包或为 a3 和 a5 创建新捆绑包和为 a6 创建新捆绑包之间做出选择,那么首选第一个。

您可以将 bundle1 用于所有视图。但问题是,当某些浏览器要打开您只需要 a3.js 和 a5.js 的页面时,它将下载所有内容。它使您的网站非常缓慢。

因此,根据我的说法,您应该始终根据页面的要求 js/css 创建多个捆绑包。

bundles.Add(new ScriptBundle("~/bundles/JqueryInterviewHomePage").Include("~/Content/js/jquery-1.8.3.min.js", "~/Content/Jquery/bootstrap.min.js", "~/Content/Jquery/InterviewHomeJquery.js"));

bundles.Add(new ScriptBundle("~/bundles/JqueryInterviewViewPage").Include("~/Content/js/jquery-1.8.3.min.js", "~/Content/Jquery/bootstrap.min.js", "~/Content/Jquery/SingleInterviewPostJquery.js"));

bundles.Add(new ScriptBundle("~/bundles/JqueryArticlesHomePage").Include("~/Content/js/jquery-1.8.3.min.js","~/Content/Jquery/bootstrap.min.js", "~/Content/Jquery/ArticlesHomeJquery.js"));

bundles.Add(new ScriptBundle("~/bundles/JqueryArticlesViewPage").Include("~/Content/js/jquery-1.8.3.min.js","~/Content/Jquery/bootstrap.min.js", "~/Content/Jquery/SinglePostJquery.js"));

希望对您有所帮助。 谢谢