我有以下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}
有什么办法可以解决这个问题?
非常感谢。