2012-03-09 8 views
5

Parece que la estrategia de importación de LESS para URL no tiene en cuenta las rutas relativas de la misma manera que CSS.MENOS la importación incorrecta de archivos con URL

test.less

@import "sub/test.less"; 
div.a { 
    background-image:url('imagea.jpg'); 
} 

sub/test.less

div.b { 
    background-image:url('imageb.jpg'); 
} 

output.css

div.b { 
    background-image:url('imageb.jpg'); 
} 
div.a { 
    background-image:url('imagea.jpg'); 
} 

correct_output.css

div.b { 
    background-image:url('sub/imageb.jpg'); 
} 
div.a { 
    background-image:url('imagea.jpg'); 
} 

¿Hay alguna manera de obtener este comportamiento de LessJS o se trata de un error en la implementación?

+0

Sin duda se ve como un [problema conocido] (https://github.com/cloudhead/less.js/issues/132). –

Respuesta

4

Esto ha sido fixed here parece. Como se detalla muy brevemente bajo usage, aquí es cómo aplicar la revisión:

<script type="text/javascript"> 
    less = { 
     relativeUrls: true 
    }; 
</script> 
<script src="less.js" type="text/javascript"></script> 

Es bastante relativo que menos no lo hizo ya. Uno pensaría que tener compatibilidad con versiones anteriores de CSS a LESS (el CSS válido debería ser válido MENOS) sería crucial.

+0

Estoy totalmente de acuerdo, relativeUrls tiene sentido. Pero tenga cuidado de que escribir '@import url (" sub/test.less ")' y compilar con 'relativeUrls: true' haría que la ruta de las URL se reescriba dos veces. Así que recomiendo compilar con 'relativeUrl' activado, pero asegúrese de evitar' url (..) 'dentro de sus sentencias menos' @ import' si no quiere volverse loco;) – Luke

1

Solución: asegúrese de que coincida con la jerarquía del directorio.

~/root/lib/css/output.css 
~/root/lib/less/test.less 
~/root/images/imagea.jpg 
~/root/images/imageb.jpg 

Tienen menos archivos de salida en el directorio css. Además de tener una buena estructura de directorios, la ruta relativa en el archivo css coincidirá y funcionará correctamente.

+1

¿Entonces la solución es solo "lidiar con eso" ™? –

+0

Más o menos. Me alegro de que hayas mencionado este tema, porque siempre he estado usando la estructura de directorios mencionada y, en consecuencia, nunca me encontré con este error. Es útil saber dónde están los límites y cómo eludirlos. – gmeben

+1

Esto es horrible ... ¡sin duda no puede ser! –

Cuestiones relacionadas