2012-03-09 17 views
5

Görünüşe göre, URL için LESS 'içe aktarma stratejisi, CSS'nin yaptığı gibi göreli yolları hesaba katmaz.URL'leri yanlış şekilde dosyalara aktarma

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'); 
} 

Bu davranışı LessJS'den almanın bir yolu var mı, yoksa bu uygulamada bir hata mı?

+0

Kesinlikle [bilinen bir sorun] (https://github.com/cloudhead/less.js/issues/132) gibi görünüyor. –

cevap

4

Görünüşe göre fixed here görünüyor. detaylı olarak çok kısaca usage altında burada düzeltmeyi uygulamak için:

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

Oldukça DAHA AZ zaten bu yapmadığı endişelendiren. CSS'den LESS'e geriye doğru uyumluluğun (geçerli CSS'nin geçerli olması gerekir) çok önemli olacağını düşünebilirsiniz.

+0

Kesinlikle katılıyorum, relativeUrls gerçekten mantıklı. Ancak '@import url ("sub/test.less") 'yazıp' relativeUrls: true' ile derleme yapmanın, URL'lerin yolunun iki kez yeniden yazılmasına neden olmasına dikkat edin. Bu yüzden “relativeUrl” açıkken derlemenizi öneririm, ancak “don't” ifadelerinizden daha az '' import' ifadelerin içinde '' url (..) 'un olduğundan emin olun;) – Luke

1

Geçici çözüm: eşleşen dizin hiyerarşisi olduğundan emin olun.

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

Daha az dosya çıkışı css dizinine sahip olsun. İyi bir dizin yapısına sahip olmanın yanı sıra, css dosyasındaki göreli yol eşleşecek ve düzgün çalışacaktır.

+1

Yani çözüm sadece "onunla ilgilenmek" mi? –

+0

Az ya da çok. Bu konuyu gündeme getirdiğinize sevindim, çünkü her zaman belirtilen dizin yapısını kullanıyorum ve sonuç olarak bu hataya daha önce hiç rastlamadım. Sınırların nerede yattığını ve onları nasıl atlatacağını bilmek faydalıdır. – gmeben

+1

Bu korkunç ... kesinlikle öyle olamaz! –

İlgili konular