我的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
这么慢的想法?
答案 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()
表现得更好: - )