dotlesscss不显示错误

时间:2011-10-22 22:11:55

标签: dotless

我的css有问题,因为编译后我的网站没有添加任何样式。

如何让dotlesscss显示错误? Regular .less会向您显示一条非常方便的好消息。

2 个答案:

答案 0 :(得分:5)

您可以使用web.config轻松完成此操作。在无点配置部分中,添加以下内容:logger="dotless.Core.Loggers.AspResponseLogger"。这将使无点输出错误而不是空白css。

我已将以下内容作为示例。 (“...”表示web.config中的现有内容)。在我的示例中,缓存设置为false。这对于调试目的很有用。在正常情况下,它应该设置为true。

<configuration>    
     <configSections>
           ...
          <section name="dotless" type="dotless.Core.configuration.DotlessConfigurationSectionHandler,dotless.Core" />
      </configSections>

      <dotless minifyCss="false" cache="false" 
            logger="dotless.Core.Loggers.AspResponseLogger" />
       ...    
</configuration>    

答案 1 :(得分:4)

我今天刚刚在RequestReduce项目中遇到过这个问题。我变得空白了 - &gt; css转换因为有解析错误似乎进入以太。谢谢  这个相关的答案How can I output errors when using .less programmatically?我能够找到一个解决方案,我可以将错误写入响应流。你必须创建一个来自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();

对于单元测试目的,我想传入我的HttpResponseBase,它会写错误。这就是我觉得事情变得丑陋的一些讨厌的演员以获得对我的记录器的引用:

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

我希望这可以帮助你。