使用:
- MVC 5.2.0.0
- Microsoft.AspNet.Web.Optimization 1.1.3
- Visual Studio 13
- 撰写本文时的最新更新
我的主机服务正在重置我的应用程序池,因为我超出了限制。他们的限制是每次发布或获取 300 MB。这似乎已经足够了!发生什么了?我使用 Fiddler 发现捆绑让我很头疼。
如果我在布局中使用脚本加载:
<script src="@Url.Content("~/Scripts/jquery-2.1.1.min.js")"></script>
等等,使用 Fiddler,我看到我的页面加载了大约 55K 的脚本,满足我运行所需的所有内容。
如果我使用:
@Scripts.Render("~/bundles/jquery")
等等,Fiddler 报告仅 一个 包的负载为 7 MB,并且从那里开始快速走下坡路......
脚本的数据是一堆乱码,因此看起来优化是对捆绑的所有脚本进行加密。
我喜欢捆绑的易用性,但是有没有办法关闭这种“打包”?我想要通过捆绑来帮助将我的脚本组织成 block ,这样我就不需要在每个布局文件中复制太多内容。
编辑:
抱歉,300 MB 是应用程序池中的内存限制。这就是我所遇到的。
bundle 是标准票价的东西(我不是调用多个 bundle ,而是将其全部放入一个 bundle 中):
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.validate*",
"~/Scripts/modernizr-*",
"~/Scripts/site.js",
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js",
"~/Scripts/masonry.pkgd.min.js",
"~/Scripts/jquery.zoom.min.js",
"~/Scripts/AnimOnScroll.js",
"~/Scripts/classie.js",
"~/Scripts/imagesloaded.js",
"~/Scripts/util.js"));
另外 - 这不是我的服务器 - 它是一个托管服务:DiscountASP.net
再次编辑
抱歉,金额是 550K 与 7 MB
最佳答案
在 BundleConfig.cs 中使用以下代码来禁用缩小优化步骤:
BundleTable.EnableOptimizations = false;
相反,您将剩下的是 bundle 在合并之前收集的所有脚本的输出。
然后,如果由于“*”通配符脚本而捆绑了太多脚本或添加了重复脚本,您可以查看导致问题的原因。
关于asp.net-mvc - MVC脚本捆绑优化导致服务器负载巨大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25491704/