dotlesscss не показывает ошибок - PullRequest
4 голосов
/ 23 октября 2011

Что-то не так с моим css, потому что после компиляции на мой сайт не добавляются стили.

Как мне заставить dotlesscss отображать ошибки? Обычный .less показывает хорошее сообщение, которое очень удобно.

Ответы [ 2 ]

5 голосов
/ 17 мая 2012

Вы можете сделать это очень легко с помощью web.config.В разделе конфигурации без точек добавьте следующее: logger="dotless.Core.Loggers.AspResponseLogger".Это позволит выводить ошибки без точек вместо пустых CSS.

Я включил следующее в качестве примера.(«...» представляет существующий материал в вашем файле web.config).В моем примере ниже кеш имеет значение false.Это полезно для отладки.Вероятно, он должен быть установлен в true при нормальных обстоятельствах.

4 голосов
/ 09 декабря 2011

Я только что столкнулся с этим сегодня в моем RequestReduce проекте.Я получаю пустое меньше -> преобразования CSS, потому что были ошибки синтаксического анализа, которые, казалось, входили в эфир.Благодаря этому связанному ответу Как вывести ошибки при использовании .less программно? Мне удалось найти решение, в котором я мог бы записать ошибки в поток ответов.Вы должны создать регистратор, полученный из dotless.Core.Loggers.ILogger:

public class LessLogger : ILogger
{
    public void Log(LogLevel level, string message)
    {
    }

    public void Info(string message)
    {
    }

    public void Debug(string message)
    {
    }

    public void Warn(string message)
    {
    }

    public void Error(string message)
    {
        Response.Write(message);
    }

    public HttpResponseBase Response { get; set; }
}

Вы передаете это в конфигурацию, отправленную в EngineFactory:

            var engine = new EngineFactory(new DotlessConfiguration
                                               {
                                                   CacheEnabled = false,
                                                   Logger = typeof (LessLogger)
                                               }
                ).GetEngine();

Для целей модульного тестирования Iхотел передать в HttpResponseBase, что будет писать ошибку.Вот где я почувствовал, что дела с уродливым кастингом стали ссылаться на мой логгер:

            ((LessLogger)((LessEngine)((ParameterDecorator)engine).Underlying).Logger).Response = response;

Надеюсь, это поможет вам.

...