2012-05-28 13 views
9

Od momentu przełączenia mojej witryny z stron internetowych ASP.NET na MVC4, mam problemy z Lesscss.Lesscss i ASP.NET MVC

CSS + JavaScript linie:

<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> 

nie mam pojęcia co jest nie tak. Ścieżki są poprawne. Arkusz stylów działa, gdy upuszczasz "/ less" z linku CSS, aby użyć go normalnie. Podczas próby użycia pliku JS Lesscss ładuje się dobrze, ale nie załadowano arkusza stylów. Narzędzia deweloperskie F12 w IE również potwierdzają, że arkusz stylów nie jest ładowany.

Czy ktoś inny miał podobne problemy podczas używania Lesscss z MVC4?

+0

myślę 'less.js' należy najpierw załadować przed stylów również swoje arkusz stylów musi znajdować się w '.less' nie' .css' – Drew

+2

Od czasu projektu .net, płatność bez kropek, port C#. Może być lepiej dopasowany do twoich potrzeb. –

Odpowiedz

8

Należy określić typ MIME dla mniejszego rozszerzenia pliku w pliku web.config i użyć go w łączu zamiast css.

<system.webServer> 
    <staticContent> 
    <mimeMap fileExtension=".less" mimeType="text/css" /> 
    </staticContent > 
</system.webServer> 

Osobiście uważam, że korzystanie z aplikacji bez kropek i ich przetwarzanie na serwerze jest lepszym rozwiązaniem.

Również nie jest to odpowiedź na twoje pytanie, ale tylko jeden punkt boczny - z MVC4 nie potrzebujesz już @ Url.Content(). http://www.davidhayden.me/blog/asp.net-mvc-4-the-new-tilde-slash-feature-in-razor-2

24

Moim zdaniem, prostym sposobem na ustawienie tego lepiej jest użycie nuget. Nie musisz używać nuget, ale to po prostu ułatwia.

  1. Zainstaluj dotless za pomocą nuget.
  2. Zainstaluj System.Web.Optimization.Less przy użyciu nuget.
  3. Dodaj swoją wiązka

    bundles.Add(new LessBundle("~/Content/less") 
           .Include("~/Content/less/more.less")); 
    
  4. referencyjny wiązka

    @Styles.Render("~/Content/less") 
    
  5. Sporządzono

+0

Zwięzłe i na temat. Dziękuję Ci. –

+1

Wreszcie, szybka i wspaniała odpowiedź. Dziękujemy za uratowanie mi czasu :) – jhartzell

+4

N.B. możesz po prostu zrobić 2. tj. zainstalować System.Web.Optimization.Less z nuget, ponieważ spowoduje to rozwinięcie 1 jako zależności. Dzięki ! – MemeDeveloper