【问题标题】:CSS not being minified when bundling in ASP.NET MVC在 ASP.NET MVC 中捆绑时 CSS 没有被缩小
【发布时间】:2018-06-21 00:44:24
【问题描述】:

我有两个大的 CSS 文件和两个大的 JS 文件。我已将它们全部包含在它们自己的包中,您可以在下面看到:(请注意,刚刚添加了 CssMinify 类的使用以查看它是否有所作为,但没有)

当我启用优化时,我可以在开发工具中看到以下内容:

当我禁用优化时,我可以看到以下内容:

据我所知,JS 文件正在被捆绑和缩小。您可以通过躲闪路径以及当优化设置为 true 时 JS 文件的大小要小得多这一事实来判断这一点。另外,当我检查响应预览时,我可以清楚地看到 JS 被缩小了。太好了。

但是,我的 CSS 没有被缩小!这应该很明显,因为提供的两个图像中的 CSS 文件大小相同。另外,当我检查响应时,它显然不是缩小的 CSS。

我错过了什么?为什么它不像我的 JS 那样缩小我的 CSS?

编辑:我刚刚在 CSS 文件顶部的开发工具预览中找到了其中的 8 个:

/* 缩小失败。返回未缩小的内容。 (8205,78):运行时错误 CSS1062:预期分号或右花括号,发现 '='/*

【问题讨论】:

  • 您是否检查过每种情况下的文件内容?我知道在web.configdebug 标志设置为true 时不会应用缩小。也许是这样
  • 不要发布代码截图。邮政编码。

标签: javascript css asp.net bundle minify


【解决方案1】:

如果您的任何 CSS 文件使用 @import 指令,则已知 CSS 缩小过程会失败,因为它不会遵循包含。这给您留下了两个选择:

(1) 不要优化你的 CSS 文件(尤其是如果你无法控制它们)

(2) 删除 @import 语句并合并您的 CSS 文件

Don’t use import-css directives when bundling

"Unexpected token found" on @import directives

编辑

针对您在问题中的编辑,似乎“Bundler & Minifier 不支持带有 css 变量的 CSS 文件”。见这里:

VS minify css gives error: CSS1062: Expected semicolon or closing curly-brace, found '-'

【讨论】:

  • 如果您无法控制 CSS 文件,为什么不优化它们?... 编辑.. 刚刚注意到链接!立即阅读!
  • 有时,前端人员在不同的团队中,并控制着“他们的”CSS 文件的结构。更改 CSS 文件的结构也可能会影响特定性规则,具体取决于它们的编写方式。
  • 啊,我明白了,这很公平。但是在这种情况下,我可以控制整个堆栈,而且这种情况不太可能改变!
  • 几年前我遇到了这个问题,我“个人”认为这是一个错误。出于某种未知原因,MS 尚未解决此问题。基本上,您可以通过不使用 @import 语句来修复它;-)
  • stackoverflow.com/a/54088086/912287 解决了我的问题。
猜你喜欢
  • 2014-04-16
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 2013-05-16
  • 2017-12-12
  • 2016-09-27
  • 2014-11-26
相关资源
最近更新 更多