在捆绑包中使用优化时,Chrome 不接收 CSS 媒体查询

Posted

技术标签:

【中文标题】在捆绑包中使用优化时,Chrome 不接收 CSS 媒体查询【英文标题】:Chrome is not picking up CSS media queries when using optimisations in bundles 【发布时间】:2014-02-18 13:15:21 【问题描述】:

正如我在标题中提到的 - chrome 没有接收媒体查询。例如:

@media only screen and (min-width: 481px) and (max-width: 784px)
@media (min-width: 481px) and (max-width: 784px)

如果我只保留一个宽度属性,它会起作用:

@media only screen and (min-width: 481px)

所有其他浏览器都可以正常使用。你们中是否有人也遇到过这个问题并且可以帮助我走上正轨?

编辑

我使用的是最新版本的 chrome(版本 32.0.1700.76 m)

【问题讨论】:

【参考方案1】:

chrome 中存在一个错误,如果没有正确的间距,它将无法读取媒体查询。如果您查看捆绑的源代码(缩小后),您可能会注意到 @media (min-width: 481px) and (max-width: 784px) 已转换为 @media (min-width: 481px)and (max-width: 784px)注意括号后缺少空格)。

This article很好地解释了这个问题,也是一个修复,基本上是创建一个实现IBundleTransform的类并实现Process,此时您可以检查这个问题并修复它:

public class CssMinifyMQ : IBundleTransform 
    public void Process(BundleContext context, BundleResponse response) 
        response.ContentType = "text/css";
        response.Content = Regex.Replace(response.Content, "(\\) and ( )?\\()", ") and (");
    


bundles.Add(
    new Bundle("~/CSS/Base", new CssMinifyMQ()).Include("~/Content/Base/*.css")
);

HTH!

【讨论】:

精彩的发现和回答!

以上是关于在捆绑包中使用优化时,Chrome 不接收 CSS 媒体查询的主要内容,如果未能解决你的问题,请参考以下文章

React Typescript NPM 包中的外部 CSS

如何使用捆绑包中的 node_modules 依赖项正确构建用于生产的 NestJS 应用程序?

删除捆绑包中的 MSI 包而不包括源

针对移动和 CSS @font-face 进行优化

缺少代码签名权利 - 在捆绑包中找不到可执行文件的权利

使用 import 而不是 require 时 webpack 不捆绑 scss