без точек не работает ни с какими переменными или миксинами (функциями). переменная @background-dark не определена

Если я вызову какую-либо из моих переменных без точек или примесей, полученный файл CSS будет пустым.

Моя установка выглядит следующим образом:

  1. У меня есть файл импорта, который импортирует все мои другие файлы css без точек.
  2. Первый импорт - это переменные
  3. Второй импорт — миксины (методы)
  4. Далее следуют любые другие файлы, которые мне нужны

Таким образом, файл 00.1.import.less будет иметь следующее содержимое:

@import "00.2.variables";
@import "00.3.methods";
@import "00.4.init";
@import "01.1.html";

Когда я копирую полученную ссылку на новую вкладку, она показывает:

variable @background-dark is undefined on line 24 in file '/Content/00.1.import.less':

 [23]: @import "11.1.p";
 [24]: @import "13.1.a";
       ---------------^
 [25]: @import "13.2.a-login";

Странно то, что эта строка просто импортная. Этот файл вообще не использует никаких переменных или миксинов. ни следующий файл. В настоящее время я тестирую переменную/примесь в одном файле.

Если я нажму F5, следующее исключение, которое я получу:

Value does not fall within the expected range.

Stack Trace:    

[ArgumentException: Value does not fall within the expected range.]
   System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) +0
   System.Web.Hosting.IIS7WorkerRequest.SetKnownResponseHeader(Int32 index, String value, Boolean replace) +150
   System.Web.HttpHeaderCollection.SetHeader(String name, String value, Boolean replace) +219
   System.Web.HttpHeaderCollection.Add(String name, String value) +23
   System.Web.HttpResponse.AppendHeader(String name, String value) +189
   System.Web.HttpResponseWrapper.AppendHeader(String name, String value) +16
   dotless.Core.Response.CssResponse.HandleCompression() +646
   dotless.Core.Response.CssResponse.WriteCss(String css) +79
   dotless.Core.Loggers.AspResponseLogger.Log(String message) +50
   dotless.Core.Loggers.Logger.Log(LogLevel level, String message) +80
   dotless.Core.Loggers.Logger.Error(String message) +43
   dotless.Core.LessEngine.TransformToCss(String source, String fileName) +562
   dotless.Core.ParameterDecorator.TransformToCss(String source, String fileName) +420
   dotless.Core.HandlerImpl.Execute() +152
   dotless.Core.LessCssHttpHandler.ProcessRequest(HttpContext context) +123
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +100
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

Пример проблемы с переменной: объявление

@background-dark: #404040;

Применение

div#top
{
    height:125px;
    border-top: 2px solid #158fa6;
    background:@background-dark;
}

Это терпит неудачу независимо от того, что я делаю.

Кто-нибудь знает, где я ошибаюсь?


person Jacques    schedule 26.07.2012    source источник


Ответы (2)


Кажется, есть 2 проблемы. Во-первых, об этом следует сообщить http://github.com/dotless/dotless а не при переполнении стека, но я все равно продолжу.

Проблема кэширования, по-видимому, заключается в заголовках настройки исключений - я не видел этого раньше, и необходимо выяснить, что происходит не так.

Проблема с переменной, возможно, связана с ошибкой, которая была у нас до версии 1.3.0.5, когда она неправильно сообщала об ошибках в импортированных файлах. Если у вас не 1.3.05, обновите и попробуйте еще раз.

person Luke Page    schedule 26.07.2012
comment
Привет Люк, Проблема 1: Это не проблема. Я предположил, что делаю что-то не так, а не из-за ошибки, поэтому вопрос о стеке кажется вполне уместным. Проблема 2: я обновился до 1.3.0.5 с 1.3.0.3, что решило проблему с переменной. Но проблема с миксинами все еще существует. Однако, когда я добавляю только миксин в класс, он работает. Как только я добавляю миксин плюс дополнительные стили, он терпит неудачу. - person Jacques; 26.07.2012
comment
Я думаю, чтобы помочь вам, мне нужно больше подробностей о том, что именно сейчас не работает и как. - person Luke Page; 26.07.2012
comment
Миксин не работает. Итак, если у меня есть миксин с именем .radius(@tst){}, и я использую его следующим образом: .use { .radius(10); } Это работает, но если я сделаю следующее: .use { color:red; .радиус(10); } Это не удается. Как только я добавляю другие атрибуты в класс css, он терпит неудачу. - person Jacques; 26.07.2012
comment
хорошо, но это не происходит само по себе, поэтому должно происходить что-то еще. Вы должны попытаться создать как можно меньший тестовый пример и создать задачу на github. - person Luke Page; 26.07.2012
comment
Привет, Люк, я зарегистрировал это в выпуске GitHub № 230. - person Jacques; 01.08.2012
comment
Поскольку сообщение об ошибке, похоже, было устранено некоторое время назад, мне интересно, следует ли вам опубликовать новый ответ, или мы должны проголосовать за его закрытие как маловероятное, чтобы помочь будущим пользователям. - person madth3; 31.08.2013

Жак,

Во-первых, это не столько ответ, сколько объяснение.

Похоже, вы сталкиваетесь с той же проблемой компиляции, сборки, минимизации заказа, что и я.

Без точек - невозможно ссылаться на меньше переменных в отдельных файл со связкой MVC

Проблема, с которой я столкнулся и которую пытаюсь решить, заключается в том, что я ссылаюсь на переменные и примеси в отдельных файлах (включаемых до того, как на них ссылаются), и они не найдены. Поскольку компиляция файла выполняется индивидуально, компилируемый файл не знает о ранее скомпилированных файлах. В этом случае dotless не возвращает содержимое для объединения.

Я написал несколько различных модификаций метода процесса, чтобы связать вручную, а затем минимизировать, но у dotless, похоже, нет функционального метода для компиляции less без физического имени файла для ссылки.

Пожалуйста, дайте мне знать, если я здесь не прав.

person Difinity    schedule 16.11.2012