Я борюсь с dotLESS @import, чтобы иметь отдельный файл переменных; Я просто постоянно получаю «переменная не определена».
Если я перехожу к файлу конфигурации переменных, он работает; если я поместил переменные в основную таблицу стилей, это сработает; но в @import нет костей. Я сопоставляю .css и .less с расширением, однако это также не работает, если я использую только .less.
Файл переменных LESS-config.less
:
/*
.LESS VARIABLES
*/
@mbw_dark_cyan: #1293b5;
@mbw_cyan: #11add4;
@mbw_magenta: #e935da;
@control_text: #ffffff;
@action_delete: #ff5400;
@section_level1_bg: @mbw_dark_cyan;
@section_level1_fg: @control_text;
@button_bg: @mbw_dark_cyan;
@button_fg: @control_text;
@button_icon: @control_text;
@data_table_header: @mbw_cyan;
.dummy {
color: @control_text;
}
Что отображается как:
/*
.LESS VARIABLES
*/
.dummy {
color: #ffffff;
}
Вызов таблицы стилей main.css
:
@import (less) '/css/LESS-config';
button {
background: @button_bg;
}
Что дает ошибку:
variable @button_bg is undefined on line 4 in file '/css/main.css':
[3]: button {
[4]: background: @button_bg;
----------------^
[5]: }
Как я уже сказал, если я заменю импорт теми же скопированными и вставленными переменными, все будет работать нормально.
Я пытался сохранить без спецификации, как в другом ответе, но это не помогает.
РЕДАКТИРОВАТЬ, я пробовал:
- Удаление (меньше)
- Переход на двойные кавычки
- Использование относительного пути
LESS-config
вместо виртуального абсолютного, как указано выше. - Добавление
logger="dotless.Core.Loggers.AspResponseLogger" log="debug"
кweb.config
(cache
ужеfalse
) - Добавление
debug="1"
- Добавление
debug="true"
Абсолютно никаких изменений в поведении.
РЕДАКТИРОВАТЬ 2:
Я создал урезанный css, в котором был только оператор импорта; когда я просматриваю его, импортированные стили находятся там. Однако при обновлении я просто получаю пустой ответ.
Так что, похоже, это как-то связано с моей конфигурацией / кэшированием IIS? Я отключил сжатие контента, но без радости; отключил все кэширование вывода для .less и .css, все равно нет радости!
ИСПРАВЛЕНО согласно комментарию Тони; https://stackoverflow.com/a/51754771/318411:
Это оказалось проблемой без точки, отслеживаемой на GitHub здесь: https://github.com/dotless/dotless/issues/553
Полное исправление заключалось в следующем:
- Обновите dotLESS до версии 1.6.7
- Понизить версию
Microsoft.Extensions.DependencyInjection
до 1.1.1.0 из-заMethod not found error
- Измените расширение файла импорта с
.css
на.less
Теперь все работает.
@import
? Я не узнаю частицу(less)
и видел ее только в двойных кавычках... Из Less .js сайт синтаксис указан как@import "@{themes}/tidal-wave.less";
- person DavidW   schedule 18.06.2018/css
находится в корне вашей файловой системы? - person DavidW   schedule 18.06.2018/css
это виртуальный корень веб-сайта - это правильно? - person Whelkaholism   schedule 19.06.2018(less)
, все равно без радости :( - person Whelkaholism   schedule 19.06.2018main.css
) и, строго говоря, он не должен обрабатывать какие-либо Less импорты или переменные. Технически вы должны получить ошибку прямо в@import (less)
или, по крайней мере, в@button_bg
(оба недействительны в файле CSS). Другими словами, это может быть просто какая-то особенность ваших настроек (dotless
не должен не обрабатывать*.css
файлы вообще). - person seven-phases-max   schedule 20.06.2018