2011-09-06 12 views
39

Ho installato un'applicazione virtuale sulla mia macchina locale ed è in esecuzione ma non sta caricando il file CSS. E sto usando lo lessCSS per lo styling della mia applicazione e penso che qui il motivo per cui non si carica il css è che il foglio di stile LESSCSS usa l'estensione .less.Come aggiungere * .less a IIS 7.0?

Quindi cosa fare per leggere * .less estensione file?

risposta

73

Non è necessario aggiungere un gestore. Basta aggiungere un tipo MIME (ora noto come Internet Media Type) per .less e impostare il tipo MIME su text/css.

I server Web visualizzano l'estensione delle richieste (proprio come le estensioni dei file). Se conoscono l'estensione, servono il file e aggiungono un campo di intestazione HTTP per indicare che il contenuto del file è in quale formato. Ad esempio, quando servono file HTML statici, aggiungono il campo dell'intestazione Content-Type: text/html. In questo modo, i browser possono capire di utilizzare quale applicazione per elaborare il corpo della risposta.

Se i server Web non conoscono l'estensione della richiesta, cercano di vedere se è già installata un'altra applicazione che conosce l'estensione. Se c'è un'altra applicazione, lascia che l'applicazione serva il file.

Si può pensare a questo esempio per comprendere appieno ciò che accade:

Si va a un ristorante, (tu sei il HTTP request). Chiedi una pizza (la pizza è l'estensione). Lo chef sa come servire la pizza, quindi ti serve.

Ora considera di andare nello stesso ristorante un'altra volta e chiedere Bomyhoor (un cibo falso). Lo chef non sa come cucinare e servire quello. Chiede ad altri cuochi di vedere se c'è già qualcun altro in cucina (la cucina è il server web) chi sa come cucinarlo? Se qualcuno sa che devo cucinare Boomyhoor, allora lui/lei ti serve.

Ora, considera di andare un'altra volta, e questa volta per chiedere Graboori. Lo chef sa già (da un dizionario) che Graboori è solo un altro nome per Pizza. Perché sa come server pizza, lo serve semplicemente.

Quando si aggiunge un tipo MIME a un server Web, è sufficiente associare un'estensione di richiesta a un tipo di file.

+6

Penso che l'OP chiedesse di usare un gestore HTTP personalizzato per trasformare il lato server. Ma la tua risposta è corretta se usi il metodo less.js sul lato client. – Domenic

+1

Questo è SUPER pesante da fare al volo per ogni singolo utente. L'OP stava cercando un auto-compilatore, quindi quando hai finito di modificare il .less (e lo hai salvato) lo compila in un file CSS e lo inserisce nella posizione giusta. Eclipse ha un plug-in per lo sviluppo e so che è possibile impostare apache su load up per farlo con meno comandi su una linux box, ma come per IIS sembra che si debba usare un compilatore locale, o dedicare un servizio ad esso. – Relic

+6

Si noti che il server Web potrebbe restituire il codice di errore HTTP 406 - non accettabile se si definisce il tipo MIME come testo/css. Dovresti usare testo/meno come il mimetype. –

0

è necessario aggiungere

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

al vostro web.config

campione:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".less" mimeType="text/css" /> 
    </staticContent > 
    <rewrite> 
     <rules> 
     <rule name="WordPress: http://YourSite.com" patternSyntax="Wildcard"> 
      <match url="*" /> 
      <conditions> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      </conditions> 
      <action type="Rewrite" url="index.php" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
    <system.web> 
    <authentication mode="None" /> 
    </system.web> 
</configuration> 
Problemi correlati