我刚将一个ASP.NET MVC 3项目迁移到MVC 4/.NET 4.0,并安装了NuGet包Microsoft.AspNet.Web.Optimization
以支持CSS和JavaScript的捆绑和缩小。我已经基本掌握了捆绑/缩小的工作,但问题是它总是启用的。即使应用程序处于调试模式(如Web.config中配置的那样),所有JavaScript包括都被缩小。从下面的XML片段可以看出,Web.config中启用了调试模式:
<system.web>
<compilation debug="true" targetFramework="4.0">
...
</compilation>
...
</system.web>
我的Bundle配置摘录:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
...
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.*",
"~/Scripts/jquery.form.js",
"~/Scripts/jquery.format.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/Site.css"));
...
}
}
CSS/JavaScript包含会呈现在HTML中,例如:
<link href="/content/css" rel="stylesheet" type="text/css">
<script src="/bundles/jquery" type="text/javascript"></script>
有人知道为什么在我的情况下启用了代码缩小吗?我不知道我错过了什么。为了进行故障排除,我创建了一个测试ASP.NET MVC 4互联网应用程序,并且可以验证此项目的调试模式下未对CSS/JavaScript进行缩小。
编辑:
在我的_Layout.cshtml文件中,我是这样呈现样式/脚本的:
@Styles.Render("content/css")
@Scripts.Render("bundles/jquery")
感谢Hao,我意识到我忘记在捆绑名称前加上“〜/”。