2012-03-09 12 views
5

Wygląda na to, że strategia importowania adresu URL LESS nie uwzględnia względnych ścieżek tak jak w CSS.LESS niepoprawnie importuje pliki z adresami 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'); 
} 

Czy istnieje sposób na uzyskanie tego zachowania z LessJS lub jest to błąd w implementacji?

+0

Z pewnością wygląda na [znany problem] (https://github.com/cloudhead/less.js/issues/132). –

Odpowiedz

4

To wydaje się być fixed here. Jak wyszczególniono bardzo krótko pod usage, oto jak zastosować poprawkę:

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

To dość dotyczącej że mniej nie to zrobić już. Można by pomyśleć, że posiadanie wstecznej kompatybilności z CSS do LESS (poprawny CSS powinien być prawidłowy LESS) miałoby kluczowe znaczenie.

+0

Zdecydowanie zgadzam się, relativeUrls rzeczywiście ma sens. Należy jednak uważać, że pisanie '@import url (" sub/test.less ")' i kompilowanie za pomocą 'relativeUrls: true' spowodowałoby dwukrotne przepisanie ścieżki adresów URL. Dlatego polecam kompilację z włączoną opcją 'relativeUrl', ale pamiętaj o uniknięciu 'url (..)' w swoich mniejszych instrukcjach '@ import', jeśli nie chcesz zwariować;) – Luke

1

Obejście: zapewnienie zgodnej hierarchii katalogów.

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

Miej mniej plików wyjściowych do katalogu css. Oprócz dobrej struktury katalogów, ścieżka względna w pliku css będzie pasować i działać poprawnie.

+1

Więc rozwiązaniem jest po prostu "poradzić sobie z tym" ™? –

+0

Mniej lub więcej. Cieszę się, że udało ci się to rozwinąć, ponieważ zawsze używałem wspomnianej struktury katalogów i w związku z tym nigdy wcześniej nie wpadłem na ten błąd. Warto wiedzieć, gdzie leżą granice i jak je omijać. – gmeben

+1

To jest okropne ... na pewno nie może być! –

Powiązane problemy