我刚刚将一个 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>
我的捆绑配置的摘录:
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在该项目的调试模式下没有被缩小。
编辑:
在我的 _Layout.cshtml 文件中,我呈现如下样式/脚本:
@Styles.Render("content/css")
@Scripts.Render("bundles/jquery")
感谢 Hao,我意识到我忘记在包名称前加上“~/”。