使用Scripts.Render时MVC4捆绑速度很慢

时间:2012-11-07 09:53:09

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

我的asp.net MVC4 Web项目在提供呈现捆绑脚本的简单页面时运行速度非常慢。但是,当我使用'硬编码的'页面上的脚本标记带有虚拟包路径的源属性,然后性能要好得多:

@Scripts.Render("~/bundles/scripts")                            ~ 4 seconds

VS

<script src='@Scripts.Url("~/bundles/scripts")'></script>       < 1 second

我的BundleConfig.cs没有特殊配置,完全如下所示:

bundles.Add(new ScriptBundle("~/bundles/scripts").Include(
    "~/Scripts/jquery-1.7.2.min.js",
    "~/Scripts/jquery.validate.min.js",
    "~/Scripts/jquery.validate.unobtrusive.js",
    "~/Scripts/jquery-ui-1.9.0.custom.min.js",
    "~/Scripts/bootstrap.min.js",
    "~/Scripts/bootstrap-modal.js",
    "~/Scripts/bootstrap-dropdown.js",
    "~/Scripts/bootstrap-tooltip.js",
    "~/Scripts/bootstrap-typeahead.js",
    "~/Scripts/bootstrap-transition.js",
    "~/Scripts/bootstrap-popover.js"));

我的web.config甚至配置为在Debug中进行优化,但我尝试在Release模式下运行并仍然得到相同的结果:

<compilation optimizeCompilations="true" debug="false" targetFramework="4.0" />

为什么Scripts.Render这么慢的想法?

1 个答案:

答案 0 :(得分:4)

问题在于我安装的过时软件包。包管理器控制台中有一个简单的Update-Package,我来自

<package id="Microsoft.AspNet.Web.Optimization"
    version="1.0.0-beta2" targetFramework="net40" />

<package id="Microsoft.AspNet.Web.Optimization"
    version="1.0.0" targetFramework="net40" />

现在Scripts.Render()表现得更好: - )