2012-01-22 25 views
7

Tôi đang sử dụng dotLess trên dự án MVC và tôi không thể thêm đường dẫn url ('') từ các tệp ít được nhập.LESS Ngăn không cho thêm url tương đối

Tôi có đoạn code dưới sau đây:

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

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

nào tạo ra css sau khi trong file .less chính, đó là chính xác:

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

Vấn đề là nếu tôi di chuyển này mã vào tệp .less thứ hai trên một thư mục khác và sau đó nhập tệp đó từ tệp chính ít hơn. Ví dụ:

@import 'myFolder/mySecondfile.less 

Bây giờ CSS được tạo ra trông như thế này:

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

Có cách nào để ngăn chặn điều đó "Myfolder" từ được hiển thị ở đó? Tôi biết tôi chỉ có thể viết đường dẫn tuyệt đối, nhưng điều đó có nghĩa là thay đổi địa chỉ mỗi lần gốc của trang web (thường xảy ra trong khi thử nghiệm).

Cảm ơn

+0

Tôi đã thử sao chép điều này bằng cách sử dụng lessphp, cổng php ít hơn và nó hoạt động theo cách bạn mô tả bạn muốn nó hoạt động. Tôi đã không thử nó cách lesscss thực sự hiện nó, mà cổng php đã sai, nhưng nó có thể có giá trị nâng cao nó như là một lỗi với tác giả. – cchana

Trả lời

0

Bạn nên cố gắng thay đổi varible vào @myVar: './../../'

8

Tôi không chắc chắn nếu bạn đã bao giờ nhận được một câu trả lời cho điều này, nhưng bạn có thể thoát khỏi chuỗi.

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

Lưu ý dấu ngã và trích dẫn xung quanh toàn bộ tham số url của kiểu. Nếu bạn muốn đọc thêm về nó, hãy xem String InterpolationEscaping Strings.

+2

Tôi gặp vấn đề tương tự như Jan và đã thử giải pháp của bạn thành công! – jhdrn

+0

Vui mừng khi biết điều đó đã giúp bạn thoát khỏi @jhdrn – Josh

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