我想要一些有关ASP.NET MVC捆绑和分类的专家建议.我在我的项目脚本文件中同时包含未分类(.js)和最小化版本(.min.js).我将它们包含在我的脚本包中,如下所示:
bundles.Add(new ScriptBundle("~/bundles/layout").Include( "~/Scripts/jquery-{version}.js","~/Scripts/lib/errorhandling.js","~/Scripts/lib/errorhandling.min.js","~/Scripts/vendor/modernizr.custom.js","~/Scripts/vendor/modernizr.custom.min.js","~/Scripts/toastr.js","~/Scripts/toastr.min.js"));
看来,这个bundle确实只包含一个脚本文件,而不是两次.我已经确认了这两个开发和生产. (作为一个侧面的注意事项,在开发中,也就是说,当debug = true时,bundle不会被渲染,但是这些文件被包含为单独的脚本标签,这也是我想要的行为.)
我的问题是:
(1)这是最好的和推荐的方法,将已经最小化的文件包含在生产设置和未确定的文件中进行开发?
(2)ASP.NET是否尝试在整个生产过程中尽可能减少整个捆绑(尽管已经缩小)?如果是的话,防止ASP.NET尝试缩小捆绑包的最好办法是什么?
提前致谢!
解决方法
没有必要在脚本包中特别包含最小化的版本.默认情况下,MVC将搜索与.min.js匹配的文件,并包括(不完全确定如果它进一步减少).如果没有,它会创建一个最小化的版本.您可以通过将以下内容添加到BundleConfig.cs中进行测试
using System.Web.Optimization;
BundleTable.EnableOptimizations = true;
捆绑框架遵循以下几个常见的约定,例如:
>“FileX.min.js”和“FileX.js”选择“.min”文件,存在.>选择非“.min”版本进行调试.>忽略“-vsdoc”文件(例如jquery-1.7.1-vsdoc.js),它们仅由智能感知.