2011-09-06 28 views
39

He configurado una aplicación virtual en mi máquina local y está ejecutándose pero no está cargando el archivo CSS. Y estoy usando el lessCSS para diseñar mi aplicación y creo que el motivo aquí para no cargar el CSS aquí es que la hoja de estilo LESSCSS usa la extensión .less.Cómo agregar * .less a IIS 7.0?

Entonces, ¿qué hacer para leer la extensión de archivo * .less?

Respuesta

73

No es necesario agregar un controlador. Simplemente agregue un tipo MIME (ahora conocido como Tipo de medios de Internet) para .less y configure el tipo MIME en text/css.

Los servidores web ven la extensión de las solicitudes (al igual que las extensiones de los archivos). Si conocen la extensión, sirven el archivo y agregan un campo de encabezado HTTP para indicar que el contenido del archivo está en qué formato. Por ejemplo, cuando sirven archivos HTML estáticos, agregan el campo de encabezado Content-Type: text/html. De esta forma, los navegadores pueden entender qué aplicación usar para procesar el cuerpo de respuesta.

Si los servidores web no conocen la extensión de solicitud, buscan para ver si ya hay otra aplicación instalada que conoce la extensión. Si hay otra aplicación, permiten que esa aplicación sirva el archivo.

Se puede pensar en este ejemplo para entender completamente lo que sucede:

Usted va a un restaurante, (usted es el HTTP request). Usted pide una pizza (pizza es la extensión). El chef sabe cómo servir pizza, así que te sirve.

Ahora considere que va al mismo restaurante en otra ocasión, y solicite Bomyhoor (una comida falsa). El chef no sabe cómo cocinar y servir eso. Pregunta a otros cocineros si ya hay alguien más en la cocina (la cocina es el servidor web) ¿quién sabe cómo cocinar eso? Si alguien sabe ho cocinar Boomyhoor, entonces él/ella le sirve.

Ahora, considere que vaya en otro momento, y esta vez solicite Graboori. El chef ya sabe (de un diccionario) que Graboori es solo otro nombre para Pizza. Como sabe cómo servir pizza, simplemente sirve eso.

Cuando agrega un tipo MIME a un servidor web, simplemente asigna una extensión de solicitud a un tipo de archivo.

+6

Creo que el OP estaba preguntando sobre el uso de un controlador HTTP personalizado para hacer la transformación del servidor. Pero su respuesta es correcta si usa el método less.js del lado del cliente. – Domenic

+1

Esto es SUPER pesado para hacer sobre la marcha para cada usuario individual. El OP estaba buscando un autocompilador, por lo que cuando haya terminado de editar .less (y guárdelo) lo compila en un archivo CSS y lo coloca en la ubicación correcta. Eclipse tiene un complemento para desarrollo, y sé que puede configurar apache en carga para que lo haga por usted con menos comandos en un linux box, pero en cuanto a IIS parece que tendrá que usar un compilador local, o dedicarle un servicio. – Relic

+6

Tenga en cuenta que su servidor web puede devolver el código de error HTTP 406 - no es aceptable si define el tipo mime como text/css. Deberías usar texto/menos como el tipo mimetype. –

0

debe agregar

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

a su Web.config

muestra:

<?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> 
Cuestiones relacionadas