2011-10-22 86 views
4

我的css出现问题,因为没有样式在编译后被添加到我的网站。dotlesscss不显示错误

如何让dotlesscss显示错误? Regular .less给你显示一个非常方便的好消息。

回答

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

这并不总是奏效。即使Less.js工作,我仍然得到一个空白的CSS。我正在使用捆绑和缩小。 –

+1

这似乎并不适用于我,无论是 - 某些文件有错误,有些是空白的,有些在Chrome的网络视图中显示为红色(状态:取消)。 –

4

我刚刚在我的RequestReduce项目中遇到过这个问题。我越来越空白 - > css转换,因为有解析错误似乎进入以太网。感谢 这个相关的答案How can I output errors when using .less programmatically?我能够找到一个解决方案,我可以将错误写入响应流。你必须创建一个Logger从dotless.Core.Loggers.ILogger derriving:

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; 

我希望这可以帮助你。