2012-05-28 18 views
9

Da quando ho cambiato il mio sito da ASP.NET WebPages a MVC4, ho problemi con Lesscss.Lesscss e ASP.NET MVC

CSS + JavaScript linee:

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

Non ho idea di ciò che è sbagliato. I percorsi sono corretti. Il foglio di stile funziona quando si rilascia "/ less" dal collegamento CSS per usarlo normalmente. Quando si tenta di utilizzare il file JS Lesscss, si carica bene, ma nessun foglio di stile viene caricato. Gli strumenti di sviluppo F12 in IE confermano anche che il foglio di stile non viene caricato.

Qualcun altro ha riscontrato problemi simili durante l'utilizzo di Lesscss con MVC4?

+0

penso 'less.js' dovrebbe essere caricato prima di foglio di stile anche, la vostra il foglio di stile deve essere in '.less' not' .css' – Drew

+2

Dal momento che è un progetto .net, checkout senza punti, una porta C#. Potrebbe essere più adatto alle tue esigenze. –

risposta

8

È necessario specificare il tipo mime per la minore estensione di file nel proprio web.config e utilizzarlo invece nel proprio collegamento se css.

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

Personalmente la cosa che uso senza dot e l'elaborazione sul server è un modo migliore per andare.

Inoltre, non è proprio una risposta alla tua domanda, ma solo un punto laterale: con MVC4 non hai più bisogno di @ Url.Content(). http://www.davidhayden.me/blog/asp.net-mvc-4-the-new-tilde-slash-feature-in-razor-2

24

A mio parere, un modo semplice per impostarlo meglio è l'utilizzo di nuget. Non devi usare nuget ma rende le cose così semplici.

  1. Installare dotless utilizzando nuget.
  2. Installare System.Web.Optimization.Less utilizzando nuget.
  3. Aggiungere il vostro pacco

    bundles.Add(new LessBundle("~/Content/less") 
           .Include("~/Content/less/more.less")); 
    
  4. riferimento il fascio

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

+0

Conciso e al punto. Grazie. –

+1

Infine, una risposta rapida e grandiosa. Grazie per avermi risparmiato tempo :) – jhartzell

+4

N.B. puoi semplicemente fare 2. cioè installare System.Web.Optimization.Less con nuget, poiché verrà visualizzato 1 come dipendenza. Grazie ! – MemeDeveloper