【问题标题】:MVC script bundling optimization results in huge server loadMVC 脚本捆绑优化导致服务器负载巨大
【发布时间】:2014-08-25 17:58:42
【问题描述】:

使用:

  • MVC 5.2.0.0
  • Microsoft.AspNet.Web.Optimization 1.1.3
  • Visual Studio 13
  • 撰写本文时的最新更新

我的主机服务正在重置我的应用程序池,因为我超出了限制。他们的限制是每个 Post 或 Get 300 MB。这似乎已经足够了!发生什么了?我用 Fiddler 发现捆绑让我很头疼。

如果我在布局中使用脚本加载:

    <script src="@Url.Content("~/Scripts/jquery-2.1.1.min.js")"></script>

等等,使用 Fiddler,我看到我的页面加载了大约 55K 的脚本,用于我需要运行的所有内容。

如果我使用:

    @Scripts.Render("~/bundles/jquery")

等等,Fiddler 报告仅 一个 包的负载为 7 MB,并且从那里快速下山......

脚本的数据是乱码,因此看起来优化正在加密所有捆绑的脚本。

我喜欢捆绑的易用性,但有没有办法关闭这种“打包”?我想要从捆绑中帮助将我的脚本组织成块,所以我不需要复制太多到每个布局文件。

编辑:

抱歉,300 MB 是应用程序池中的内存限制。这就是我遇到的问题。

捆绑包是标准票价(而不是调用多个捆绑包,我将它们全部塞入一个)。:

            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 vs 7 MB

【问题讨论】:

  • 请发布您的捆绑配置。
  • 没有“加密”资产之类的东西。浏览器必须读取它们,如果它们被加密而无法工作。您可能已将服务器配置为 gzip,这将使它们成为二进制文件。我也对您的“负载”和“限制”措辞感到困惑。你说的是记忆吗?还是带宽?如果带宽,300mb 根本不算多……即使对于一个简单的网站……你很快就会被烧毁……
  • 另外,请检查您的 jquery 包,这通常包括的不仅仅是 jquery。
  • Fiddler 与您使用的内存量有什么关系?你怎么知道捆绑导致你的记忆问题?您的问题不包括将两者联系起来的证据。
  • Fiddler 与任何东西都没有关系——它只是报告我从服务器中提取的东西的数量。捆绑 = 7Mb 无捆绑 = 55K

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


【解决方案1】:

在您的 BundleConfig.cs 中使用以下代码来禁用缩小的优化步骤:

BundleTable.EnableOptimizations = false;

您将得到的是捆绑之前收集的所有脚本的输出。

然后,如果由于您的“*”通配符脚本捆绑了太多脚本或添加了重复的脚本,那么您可以查看导致问题的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    相关资源
    最近更新 更多