MVC Bundling - 一个包含多个文件夹的文件

时间:2016-01-04 09:07:22

标签: asp.net-mvc bundling-and-minification

我有5个js文件:

  1. a1.js
  2. a2.js
  3. a3.js
  4. a4.js
  5. a5.js
  6. 捆绑在 bundle1.js 中,我在View1中使用此捆绑包。

    现在我需要在View2中使用 a3.js,a5.js a6.js

    我是否可以使用 a3,a5 a6 创建新捆绑包,或者使用bundle1 for a3& a5 并为 a6 创建新的捆绑包?

    哪种方法好?

2 个答案:

答案 0 :(得分:5)

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

但是如果你必须选择用a3,a5和a6创建一个新的包,或者为a3和a创建一个bundle1。 a5并为a6创建新的bundle然后第一个是首选。

答案 1 :(得分:0)

您可以将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"));

希望这会对你有所帮助。 感谢