我正在 MVC4 中实现捆绑和缩小支持,看起来好像它使我的 javascript 文件比没有捆绑/缩小时更大。我正在使用 nuget 中可用的最新版本(启用预发布选项)。我在我的 RegisterBundles 类中设置了以下捆绑包。
bundles.Add(new ScriptBundle("~/bundles/baseJS").Include(
"~/Scripts/jquery-1.7.1.js",
"~/Scripts/jquery.cookie.js",
"~/Scripts/jquery-ui-1.8.11.js",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery.pjax.js",
"~/Scripts/kendo/2012.1.515/js/kendo.all.min.js",
"~/Scripts/jquery.jstree.js",
"~/Scripts/jquery.unobtrusive-ajax.js",
"~/Scripts/jquery.validate.js",
"~/Scripts/jquery.validate.unobtrusive.js",
"~/RIS.Scripts/PostJson.js"));
我正在使用将它加载到我的 _Layout.cshtml 中
@Scripts.Render("~/bundles/baseJS")
当我在调试模式下将 Fiddler 中收到的这些脚本的字节数相加时,我得到以下信息
Name Size(bytes)
jquery 98013
jquery cookie 1455
jquery ui 124704
bootstrap 52378
pjax 8138
kendo.all 219751
jstree 55045
unobtrusive-ajax 2492
validate 13323
validate-unobtrusive 5138
postjson 634
Total 581071
当我在生产服务器上运行它时,我从提琴手那里得到了整个 js 包的以下信息。
Bytes Received: 999,396
这里发生了什么?大多数文件在某种程度上都被缩小了,但它不应该几乎是我的有效负载大小的两倍。
其他详细信息 - 当我从本地开发盒(fiddler 报告大小 379kb)和服务器(fiddler 报告大小 999kb)下载 js 文件并将它们放入 kdiff 时,它们是二进制相同的。当我查看 Chrome 的开发者工具网络选项卡时,本地服务器下载 379kb,但“解析器”的值为 975kb。这个解析器值是多少。是否有一些 IIS 压缩设置未在我的服务器中设置但在我的本地 IIS 服务器上?我注意到的唯一区别是我在开发机器上运行的 IIS Express 是 8.0,而服务器是 IIS 7.5。