2012-05-28 26 views
9

Seit ich meine Site von ASP.NET WebPages auf MVC4 umgestellt habe, habe ich Probleme mit Lesscss.Lesscss und ASP.NET MVC

CSS + Javascript Linien:

<link href="@Url.Content("~/Content/site.css")" rel="stylesheet/less" type="text/css" /> 
<script src="@Url.Content("~/Scripts/less-1.3.0.min.js")" type="text/javascript"></script> 

Ich habe keine Ahnung, was falsch ist. Die Pfade sind korrekt. Das Stylesheet funktioniert, wenn Sie "/ less" aus dem CSS-Link entfernen, um es normal zu verwenden. Wenn Sie versuchen, die Lesscss JS-Datei zu verwenden, wird sie geladen, aber es wird kein Syle-Sheet geladen. F12-Entwicklungstools im IE bestätigen auch, dass das Stylesheet nicht geladen wird.

Hat jemand anderes ähnliche Probleme bei der Verwendung von Lesscss mit MVC4?

+0

Ich denke 'less.js' sollte auch zuerst vor Ihrem Stylesheet geladen werden, Ihre Stylesheet muss in '.less' nicht' .css' sein – Drew

+2

Da es ein .net-Projekt ist, Kasse dotless, ein C# -Port. Es könnte besser für Ihre Bedürfnisse geeignet sein. –

Antwort

8

Sie sollten den MIME-Typ für die Dateierweiterung low in Ihrer Datei web.config angeben und diese stattdessen in Ihrem Link verwenden, wenn css.

Persönlich ich Sache mit dotless und Verarbeitung dieser auf dem Server ist ein besserer Weg zu gehen.

Auch nicht wirklich eine Antwort auf Ihre Frage, aber nur ein Nebenpunkt - mit MVC4 brauchen Sie nicht mehr @ Url.Content(). http://www.davidhayden.me/blog/asp.net-mvc-4-the-new-tilde-slash-feature-in-razor-2

24

Meiner Meinung nach ist ein einfacher Weg, dies besser einzurichten, nuget. Sie müssen nicht nuget verwenden, aber es macht die Dinge einfach.

  1. Installieren Sie dotless mit nugget.
  2. Installieren Sie System.Web.Optimization.Less mit nugget.
  3. Fügen Sie Ihr Bündel

    bundles.Add(new LessBundle("~/Content/less") 
           .Include("~/Content/less/more.less")); 
    
  4. Referenz das Bündel

    @Styles.Render("~/Content/less") 
    
  5. Geschehen

+0

Prägnant und auf den Punkt. Vielen Dank. –

+1

Endlich eine schnelle und gute Antwort. Danke, dass du mir Zeit gespart hast :) – jhartzell

+4

N.B. Sie können einfach 2 tun. d. h. System.Web.Optimization.Less mit nuget installieren, da es 1 als Abhängigkeit herunterzieht. Vielen Dank ! – MemeDeveloper