2014-09-30 1 views
0

Я использую переменные .LESS в моих файлах. У меня есть LessTransform в моем Bundler, который позволяет всем моим .less видеть переменные. Но когда я отключаюсь, очевидно, что он больше не работает!Могу ли я установить один комплект .NET MVC, который всегда должен быть связан (даже в режиме отладки)?

Могу ли я увидеть только один комплект, который всегда должен быть в комплекте? (даже при компиляции debug = true)

ответ

1

К сожалению, это все или ничего не установлено (определяется очень рано на AssetManager.DeterminePathsToRender, который на основе EnableOptimizations либо испускает URL-адрес пула, либо отдельные пути сценария).

Вы можете изучить расширение WebEssentials, которое обрабатывает файлы .less (а также другие) изначально. По крайней мере, тогда вы сможете включить скомпилированную версию и позволить вам перейти к более важным вопросам. Как только вы закончите, вы можете вернуть связку обратно в уравнение.

Я не работаю на/для WebEssentials, я просто найти расширение очень полезно

0

В основном приложении, которое я работаю, мы используем DotLess компилятора непосредственно обслуживать наши таблицы стилей.

Мы храним пользовательские .LESS-переменные в базе данных и объединяем их с файлом без изменений на лету.

using System.Web.Mvc; 

using dotless.Core; 

using System.Web.Helpers; 

public class SkinController : Controller 
{ 
    private const int TwentyMinutes = 1200; 

    [OutputCache(Duration = TwentyMinutes, VaryByParam = "*", VaryByContentEncoding = "gzip;deflate", VaryByCustom = "Scheme")] 
    public ActionResult Index() 
    { 
     string variablesFromDatabase = "these came from the database"; 

     string lessFileContents = "this was read from the disk"; 

     string content = Less.Parse(string.Concat(variablesFromDatabase, lessFileContents)); 

     SetEtag(content); 

     return Content(content, "text/css"); 
    } 

    private void SetEtag(string content) 
    { 
     string acceptEncoding = Request.Headers["Accept-Encoding"]; 

     string value = string.Concat(content, acceptEncoding); 

     Response.AppendHeader("etag", string.Format("\"{0}\"", Crypto.Hash(value, "md5"))); 
    } 
}