PlT*_*lor 10 asp.net-mvc-4 asp.net-optimization
我正在实现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"));
Run Code Online (Sandbox Code Playgroud)
我正在使用它将它加载到我的_Layout.cshtml中
@Scripts.Render("~/bundles/baseJS")
Run Code Online (Sandbox Code Playgroud)
当我在调试模式中为这些脚本添加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
Run Code Online (Sandbox Code Playgroud)
当我在我的生产服务器上运行它时,我从fiddler获得了整个js包的以下内容.
Bytes Received: 999,396
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?大多数文件在某种程度上都是缩小的,但它的大小不应该是我的有效载荷的两倍.
其他细节 - 当我从我的本地开发盒(fiddler报告大小为379kb)和服务器(小提琴手报告大小为999kb)下载js文件并将它们放入kdiff时它们是二进制相同的.当我查看Chrome的开发者工具网络选项卡时,本地服务器下载379kb,但"Parser"值为975kb.什么是解析器值.是否有一些IIS压缩设置未在我的服务器中设置但在我的本地IIS服务器上?我注意到的唯一区别是我在我的开发机器上运行的IIS Express是8.0,其中服务器是IIS 7.5.
Hao*_*ung 12
你在这里看到的很可能是一些调试/释放'魔术'来自于FileExtensionReplacementList.
我们以jQuery为例.通常在您的脚本文件夹中,您将看到每个文件的两个副本,即jquery-1.6.2.js和jquery-1.6.2.min.js.
默认情况下,优化将使用min.js版本debug=false,并使用常规jquery-1.6.2.js时间debug=true,因为通常这会使调试更容易(没有捆绑和没有缩小捆绑).
此文件选择'magic'通过FileExtensionReplacementListon 控制BundleCollection.
在下一个版本(RTM)中,此列表中将有更多粒度,因为通常开发人员希望在应该使用这些列表时进行定位,即
list.Add("min", OptimizationMode.WhenEnabled);
list.Add("debug", OptimizationMode.WhenDisabled);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8399 次 |
| 最近记录: |