2012-11-15 2 views
9

Ich hoffe, dass ich nicht ein doppeltes Thema erstellen, aber ich habe seit zwei Tagen gesucht und kann keine Lösung für dieses Problem finden.Dotless - Kann weniger Variable in separate Datei mit MVC-Bundling nicht referenzieren

Wir beginnen ein neues Projekt in MVC4 und wir haben die weniger Version von Bootstrap geladen. Das Problem, auf das ich stoße, ist, wenn ich versuche, einige Klassen oder Variablen in der bootstrap.less, meine global.less oder irgendein Ding außerhalb der aktuellen Datei zu referenzieren. Ich kann eine Variable oben in der aktuellen Datei erstellen und sie einfach verwenden, aber wenn ich etwas aus einer separaten Datei verwenden möchte, muss ich es. Dies wäre in Ordnung, wenn meine gesamte App weniger in einer Datei wäre, aber ich müsste 4 + Dateien in jede Seite/Sektion importieren, weniger in die Datei, die ich erstelle.

ich die MVC4 Bündelung Zugabe von https://gist.github.com/2002958

Die Frage hinzugefügt, wie ich es sehe, ist, dass jede Datei ausgewertet wird, konvertiert unabhängig zu CSS. Ich habe versucht, den Prozess und baute eine massive weniger Zeichenfolge aus allen Dateien in dem weniger Bündel zu vereinfachen und dann konvertieren (Less.Parse(lessString)), aber ich bin immer die Fehlermeldung:

"You are importing a file ending in .less that cannot be found"

Also hier ist meine letzte Frage: Gibt es eine Möglichkeit, einfach eine weniger Zeichenfolge zu analysieren, ohne dass eine physische Datei referenziert wird? Das würde mein Problem lösen.

Wenn das aus irgendeinem seltsamen Grund nicht möglich ist, gibt es bereits eine Komponente oder einen Prozess, von dem ich nicht weiß, dass er die Dateien tatsächlich bündelt, bevor er sie minimiert?

Jedes Licht zu diesem Thema würde geschätzt werden, wie ich in Kreisen bin, die versuchen, dies zur Arbeit zu bringen.

Diese Frage wurde auch in der dotless Gruppe gepostet:
https://groups.google.com/forum/?fromgroups#!topic/dotless/j-8OP1dNjUY

+0

haben Sie eine Lösung für diese gefunden? –

+0

Leider habe ich das nie getan. Ich widmete ihm mehr Zeit, als ich für klug hielt, und ging weiter. Da ich keine Lösung für dieses Problem gefunden habe, habe ich in meinen letzten Projekten nicht weniger verwendet. Es schien einfach keine brauchbare Option für meine Bedürfnisse zu sein. – Difinity

Antwort

3

diese sollution für mich funktioniert:
ich habe zwei nuget Pakete:
dotless
dotless adapter for system.web.optimization

in web.config Ich habe diese Zeilen

<configuration> 
    <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" /> 
</configuration> 

Notiz, die Sie definieren sollten dotless params nach Ihren Bedürfnissen.

in BundleConfig.cs

public static void RegisterBundles(BundleCollection bundles) 
{ 
    bundles.Add(new LessBundle("~/bundles/styles/").Include(
     "~/Content/site.less" 
    )); 
    BundleTable.EnableOptimizations = True; //false if you want to debug css 
} 

und finaly Site.less

/*i have to redefine some bootstrap mixin and variables, so importing bootstrap and extending happings there*/ 
@import "bootstrap-extends.less"; 

/* all other needed less should be included here too 
    for example: 
    @import "admin.less"; 
    @import "controls.less"; 
    etc 
*/ 

body{ 

} 

site.less und bootstrap-extends.less sind innerhalb Content-Ordner.
bootstrap-extends hält alle @import Richtlinien benötigt, die in ~/Content/bootstrap/bootstrap.less usualy aufgeführt sind

Ich hoffe, das hilft

Verwandte Themen