2012-03-09 10 views
5

Sembra che la strategia di importazione di LESS per l'URL non tenga conto dei percorsi relativi come fa il CSS.MENO importazione errata di file 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'); 
} 

C'è un modo per ottenere questo comportamento da LessJS o si tratta di un bug nell'implementazione?

+0

Certamente sembra un [problema noto] (https://github.com/cloudhead/less.js/issues/132). –

risposta

4

Questo è stato fixed here sembra. Come dettagliato molto brevemente sotto usage, ecco come applicare la correzione:

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

è abbastanza relativa che meno non lo ha fatto già. Penseresti che avere la retrocompatibilità da CSS a LESS (il CSS valido dovrebbe essere valido MENO) sarebbe cruciale.

+0

Sono assolutamente d'accordo, RelativeUrls ha davvero senso. Attenzione però che scrivere '@import url (" sub/test.less ")' e compilarlo con 'relativeUrls: true' farebbe riscrivere il percorso degli url due volte. Quindi mi raccomando di compilare con 'relativaUrl' acceso ma assicurati di evitare' url (..) 'nelle tue istruzioni' @ import' meno se non vuoi impazzire;) – Luke

1

Soluzione temporanea: verificare che la gerarchia di directory corrisponda.

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

Hanno il minore output di file nella directory css. Oltre ad avere una buona struttura di directory, il percorso relativo nel file css corrisponderà e funzionerà correttamente.

+1

Quindi la soluzione è solo per "affrontarlo" ™? –

+0

Più o meno. Sono contento che tu abbia portato questo argomento, perché ho sempre usato la struttura della directory menzionata e, di conseguenza, non ho mai incontrato prima questo bug. È utile sapere dove si trovano i confini e come aggirarli. – gmeben

+1

Questo è orribile ... sicuramente non può essere! –