2012-01-22 6 views
7

Używam dotLess w projekcie MVC i nie mogę dodawać ścieżek url ('') z zaimportowanych mniej plików.MNIEJ Zapobiegaj mniejszym dodawaniu względnego adresu URL

Mam następujący kod Minus:

@myvar : '../../'; 

body 
{ 
    background-image:url('@{myvar}chosen-sprite.png'); 
} 

który generuje następujące CSS, gdy w głównym pliku .less, co jest poprawne:

body { 
    background-image: url('../../chosen-sprite.png'); 
} 

Problemem jest to, że jeśli przeniosę ten kodu do drugiego pliku .less w innym folderze, a następnie zaimportuj ten plik z głównego less pliku. Np:

@import 'myFolder/mySecondfile.less 

Teraz generowane CSS wygląda następująco:

body { 
    background-image: url('myFolder/../../chosen-sprite.png'); 
} 

Czy istnieje jakiś sposób, aby zapobiec "myfolder" od wyświetlane są tam? Wiem, że mógłbym napisać absolutną ścieżkę, ale oznaczałoby to zmianę adresu za każdym razem, gdy katalog główny witryny (co zdarza się często podczas testowania).

Dzięki

+0

Próbowałem replikacji tego przy użyciu lessphp, port php mniej, i działał tak, jak opisałeś, że chcesz działać. Nie próbowałem go tak, jak faktycznie robi to lesscss, który port php ma zły, ale może warto go zgłosić jako błąd z autorem. – cchana

Odpowiedz

0

należy spróbować zmienić varible do @myVar: './../../'

8

Nie jestem pewien, czy kiedykolwiek dostał odpowiedź na to, ale można uciec łańcucha.

.body { 
    background-image: ~"url('chosen-sprite.png')"; 
} 

Zauważ tyldę i cytat otaczający cały argument adresu URL stylu. Jeśli chcesz przeczytać więcej na ten temat, sprawdź: String Interpolation i Escaping Strings.

+2

Miałem ten sam problem co Jan i wypróbowałem Twoje rozwiązanie z powodzeniem! – jhdrn

+0

Cieszę się, że to pomogło Ci wyjść @jhdrn – Josh