BundleTable.EnableOptimizations不适用于asp mvc

时间:2016-07-13 11:39:03

标签: c# css asp.net asp.net-mvc

我在MVC BundleConfig文件中有一个非常奇怪的问题。在发布我的网站之前,我将BundleTable.EnableOptimizations设置为true,并等待我的css文件在发布后最小化。但是ScriptBundle中的一个文件被缩小了,而来自同一个ScriptBundle的另一个文件则没有。这就是我的意思:

我的BundleConfig代码:

        bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/Site.css"));

        BundleTable.EnableOptimizations = true;

在_Layout我有:

@Styles.Render("~/Content/css")

因此,这个代码的结果是,当我在浏览器中检查网站的源代码时,有一个css文件,其中我的bootstrap.css和Site.css文件被合并,但是bootstrap.css被缩小,并且Site.css不是。我只是想不通为什么系统不会缩小我的Site.css文件。

这是我遇到的最奇怪的问题,所以如果你知道发生了什么,请帮助我。

1 个答案:

答案 0 :(得分:2)

您应该尝试以下代码

public static void RegisterBundles(BundleCollection bundles)
{
bundles.IgnoreList.Clear();
bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/Site.css"));

BundleTable.EnableOptimizations = true;
}

使用IgnoreList,您可以绕过任何未包含在bundle中的已缩小的css,因为已经缩小的mvc包将忽略它。 如果这不起作用,您需要验证您的CSS,您可以使用Web essentials来验证您的CSS。 希望这会有所帮助。