我刚刚将 ASP.NET MVC 3 项目迁移到 MVC 4 / .NET 4.0,并安装了 NuGet 包Microsoft.AspNet.Web.Optimization
为了支持 CSS 和 JavaScript 的捆绑和缩小。我几乎已经完成了捆绑/缩小工作,问题是它always已启用。即使应用程序处于调试模式,如 Web.config 中配置的那样,所有 JavaScript 包含内容都会被缩小。从下面的 XML 片段中可以看到,调试模式在 Web.config 中启用:
<system.web>
<compilation debug="true" targetFramework="4.0">
...
</compilation>
...
</system.web>
我的捆绑配置的摘录:
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 Internet 应用程序,并且可以验证 CSS/JavaScript 是否已执行not在该项目的调试模式下进行缩小。
EDIT:
在我的 _Layout.cshtml 文件中,我渲染样式/脚本如下:
@Styles.Render("content/css")
@Scripts.Render("bundles/jquery")
感谢Hao,我意识到我忘记在包名称前加上“~/”前缀。