У меня есть следующий класс CSS, который использует псевдоэлемент для вставки разрыва строки:
.test-class:after {
content: '\00000a';
white-space: pre;
}
В моем веб-приложении ASP.NET это прекрасно работает при отладке.Однако в режиме выпуска, когда файл CSS минимизирован, содержимое изменяется так, что «\ 00000a» становится «\ n».
Это приводит к тому, что символ «n» визуально отображается на экране, скореечем вставка разрыва строки.
Я знаю, что подобная проблема была задана ранее здесь:
Минимизация CSS-пакета, заменяющая символы Юникода
Тем не менее, я считаю, что проблема в моем случае заключается в самом процессе минимизации, а не в кодировании содержимого страницы / ответа.Я говорю это потому, что, пытаясь разобраться в сути проблемы, я создал тест IBundleTransform
, основанный на встроенном классе CssMinify
, который, как мне кажется, демонстрирует, что проблема находится внутри внутренних элементов * 1016.* сам класс.
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
и проверка response.Contents
до и после вызова base.Process выявляет
До
@charset 'utf-8';
.test-class:after {
content: '\00000a';
white-space: pre;
}
После
@charset 'utf-8';.test-class:after{content:'\n';white-space:pre}
Могу ли я что-нибудь сделать, чтобы обойти этоповедение?
Большое спасибо.