2012-03-09 27 views
5

Dường như chiến lược nhập LESS cho URL không tính đến đường dẫn tương đối giống với CSS.LESS nhập tệp không đúng với 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ó cách nào để có được hành vi này từ LessJS hoặc đây có phải là lỗi trong quá trình triển khai không?

+0

Chắc chắn trông giống như [vấn đề đã biết] (https://github.com/cloudhead/less.js/issues/132). –

Trả lời

4

Điều này có vẻ như là fixed here. Như đã trình bày rất ngắn gọn dưới usage, dưới đây là cách để áp dụng việc sửa chữa:

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

Nó khá liên quan mà LESS không làm điều này đã. Bạn sẽ nghĩ rằng có khả năng tương thích ngược từ CSS đến LESS (CSS hợp lệ sẽ là LESS hợp lệ) sẽ rất quan trọng.

+0

Tôi rất đồng ý, các URL tương đối thực sự có ý nghĩa. Nhưng hãy cẩn thận khi viết '@import url (" sub/test.less ")' và biên dịch với 'relativeUrls: true' sẽ làm cho đường dẫn url được viết lại hai lần. Vì vậy, tôi khuyên bạn nên biên dịch với 'relativeUrl' được bật nhưng hãy chắc chắn tránh' url (..) 'bên trong các câu lệnh' @ import' ít hơn nếu bạn không muốn phát điên;) – Luke

1

Giải pháp thay thế: đảm bảo phân cấp thư mục phù hợp.

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

Có ít đầu ra tệp hơn vào thư mục css. Ngoài việc có cấu trúc thư mục tốt, đường dẫn tương đối trong tệp css sẽ khớp và hoạt động chính xác.

+1

Vì vậy, giải pháp là chỉ để "đối phó với nó" ™? –

+0

Nhiều hơn hoặc ít hơn. Tôi rất vui vì bạn đã đưa chủ đề này lên, bởi vì tôi đã luôn luôn sử dụng cấu trúc thư mục đã đề cập và, do đó, không bao giờ gặp phải lỗi này trước đây. Thật hữu ích khi biết ranh giới nằm ở đâu và cách phá vỡ chúng. – gmeben

+1

Điều này thật khủng khiếp ... chắc chắn nó không thể! –

Các vấn đề liên quan