您正在导入以.less结尾的无法找到的文件

时间:2017-12-13 14:52:35

标签: c# dotless

我正在尝试在运行时将.less文件编译成css。但是dotless库无法找到@import file.less文件。

我的所有文件都与主要较少的文件位于同一目录中。

这是我的C#代码:

    var config = new DotlessConfiguration() {
         MinifyOutput = true,
         ImportAllFilesAsLess = true
    };
    string css = Less.Parse(less,config);

我想要转换的主要文件较少:

@import "font-awesome.less";
@fa-font-path: "/fonts";

@sco_green: #63b02e;
@sco_orange: #f18500;

@blue-deep:#00a2d1;

@white: #ffffff;
@active: #ffcb8b;
@gray: #999;
@gray-dark: #525252;
@gray-middle: #b8bcba;
@gray-light: #dbdbdb;
@gray-lighter: #efefef;
@gray-super-light: #f7f7f7;
@gray20:#333;
@gray94:#F0F0F0;

Web配置:

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

<system.web>
    <httpHandlers>
        <add path="*.less" verb="GET" type="dotless.Core.LessCssHttpHandler, dotless.Core" />
    </httpHandlers>
</system.web>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
        <add name="dotless" path="*.less" verb="GET" type="dotless.Core.LessCssHttpHandler,dotless.Core" resourceType="File" preCondition="" />
    </handlers>

</system.webServer>
<dotless minifyCss="true" cache="true" web="false" disableParameters="true" />

错误讯息:

enter image description here

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

在谷歌搜索了几乎每一个搜索结果后,我发现了 this:

基本上我需要为dotless设置当前工作目录才能找到@import文件:

所以我在C#中所做的就是:

    string filePath = $"{_filePath}\\main.less";
    string less = ReadFile(filePath);
    var dotlessConfig = new dotless.Core.configuration.DotlessConfiguration();
    Directory.SetCurrentDirectory(_filePath);
    string css = Less.Parse(less,dotlessConfig);