ASP.NET缩小错误地替换了Unicode字符

时间:2018-09-19 11:28:33

标签: css asp.net minify

我有以下CSS类,该类使用伪元素插入换行符:

.test-class:after {
    content: '\00000a';
    white-space: pre;
}

在我的ASP.NET Web应用程序中,调试时工作正常。但是,在发布模式下,当缩小CSS文件时,将修改内容,以使'\ 00000a'变为'\ n'。

这会导致在屏幕上显示字符“ n”,而不是插入换行符。

我知道以前曾经在这里问过类似的问题:

CSS bundle minification replacing Unicode characters

但是,我认为我的问题在于缩小过程本身,而不是页面/响应内容编码。我之所以这样说是因为,为了深入探究问题,我创建了一个测试IBundleTransform,该测试源自内置的CssMinify类,我相信它表明问题出在内部。 CssMinify类本身。

Bundle b = new Bundle("~/Content/Test");
b.Include("~/Content/Test.css");
b.Transforms.Add(new CustomMinifier());
bundles.Add(b);

...

public class CustomMinifier : CssMinify
{
    public override void Process(BundleContext context, BundleResponse response)
    {
        base.Process(context, response);
    }
}

Process方法内稍作休息,并在调用base之前和之后检查response.Contents。Process显示以下内容。

之前

@charset 'utf-8';

.test-class:after {
    content: '\00000a';
    white-space: pre;
}

之后

@charset 'utf-8';.test-class:after{content:'\n';white-space:pre}

有什么办法可以解决这个问题?

非常感谢。

0 个答案:

没有答案