【问题标题】:BundleTable.EnableOptimizations doesn't work asp mvcBundleTable.EnableOptimizations 在 asp mvc 中不起作用
【发布时间】:2016-11-15 23:35:27
【问题描述】:

我在 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 文件。

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

【问题讨论】:

  • 这可能是 Site.css 中的语法错误,因此缩小失败。您可以通过csslint.net 或其他验证器运行 css 吗?
  • 请阅读 bundle 和 minfiy 的不同之处。然后你就会找到答案。
  • 我的 css 文件 @Esko 中没有任何重大语法错误,但在其他情况下可能会出现问题,所以无论如何感谢您的反馈!
  • 感谢@Surajghosi 的建议

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


【解决方案1】:

你应该试试下面的代码

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 bundle 会忽略它。 如果这不起作用,您需要验证您的 CSS,您可以使用 Web Essentials 来验证您的 CSS。 希望这会有所帮助。

【讨论】:

  • 你的回答太棒了! bundles.IgnoreList.Clear() 做魔术师!实在是太感谢你了!
猜你喜欢
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 2019-03-26
  • 2016-04-07
相关资源
最近更新 更多