0

.lessファイルを.cssファイルに解析するために使用する LessTransform クラスは次のとおりです。

public class LessTransform : IBundleTransform
{
    public void Process(BundleContext context, BundleResponse response)
    {
        response.Content = dotless.Core.Less.Parse(response.Content);
        response.ContentType = "text/css";
    }
}

クラスbootstrap.cssを使用して、ダウンロードしたファイルを解析しようとしています。LessTransformメソッドが実行されているとき、最初response.Contentは Bootstrap の内容を持っています。

への呼び出し後dotless.Core.Less.Parse()response.Contentは空白です。パーサーは静かに失敗しています。

なんで?

4

1 に答える 1

3

LESS 解析にはエラー処理がないため、すべてのエラーは黙って無視されます。エラーを処理していた場合は、次のように表示されます。

Expected '}' on line 577 in file '../bootstrap/mixins.less':
[576]: 
[577]:     .spanX (@index) when (@index > 0) {
       --------------------^
[578]:       .span@{index} { .span(@index); }

Bootstrap は、DotLESS がまだサポートしていない LESS 構文を使用しているようです。古いバージョンの Bootstrap を試すこともできます (以前は Bootstrap 2.0 と DotLESS を使用していました)。

エラー処理を実装するには、実装を追加する必要がありますILogger。このようなもの:

var config = new DotlessConfiguration
{
    LogLevel = LogLevel.Error,
    // Put your custom logger implementation here
    Logger = typeof(LessCssLogger)
};

var lessEngine = new EngineFactory(config).GetEngine();
var outputCss = lessEngine.TransformToCss(response.Content, null);
Response.Content = outputCss;

LessCssLoggerを実装する場所ILogger。DotLESS には、AspResponseLogger使用できる可能性のある が付属しています。

于 2013-05-13T00:19:43.017 に答える