SquishIt.Less ProcessIncludes() not working for CSS file

300 views Asked by At

I have a Less file which includes a CSS file, then a set of Less files. With SquishIt I want to combine and minify these, but it ignores the CSS file unless I rename it to .css.less. I believe ProcessIncludes() is intended for this purpose but makes no difference.

Does anyone know why ProcessIncludes() doesn't do anything on a CSS file linked in a Less file?

(This is a follow up to: this question about Squishit.Less not working at all, it now works for the Less files.)

2

There are 2 answers

3
AlexCuse On BEST ANSWER

There is a configuration option for dotLess called "InlineCssFiles" that I believe does what you need. You can use your own configuration by overriding the static property "EngineBuilder" (its a Func) on less preprocessor. So in App_Start you could do something like this:

LessPreprocessor.EngineBuilder = () => new EngineFactory
            {
                Configuration = new DotlessConfiguration
                    {
                        InlineCssFiles = true,
                    }
            }.GetEngine();
0
seven-phases-max On

According to LESS documentation:

You can import both CSS and LESS files. Only LESS files import statements are processed, CSS file import statements are kept as they are.

You can force LESS to process a CSS file by:

@import (less) "file.css";

Note however that all this applies to the official LESS implementation and may not work in SquishIt. SquishIt seems to use the dotless compiler which is pretty much outdated.