2012-05-22 3 views
12

У меня возникла проблема при использовании LESS в качестве таблицы стилей для моего сайта. Лично я предпочел бы использовать относительный путь в CSS, чем абсолютный путь (только моя привычка), но теперь, когда я использую LESS с функцией импорта, у меня есть проблема, как показано ниже.LESS CSS background с относительным путем

У меня есть main.less файл в корневой папке

@import "inc/inc.less"; 

и файл inc.less в папке inc

.homeBgr { 
    background: url('icons/Home.gif'); 
} 

изображение Home.gif находится в папке /root/inc/icons

- main.less 
     - inc 
     - inc.less 
     - icons 
      - Home.gif 

с lessc выход

.homeBgr { 
    background: url('icons/Home.gif'); 
} 

Однако, мое ожидание

.homeBgr { 
    background: url('inc/icons/Home.gif'); 
} 

Если я использую less.js в качестве составителя клиента, я получил вывод, как и следовало ожидать, однако если я использую lessc, я не знаю.

У кого-то была такая же проблема, и есть решение для этого? Или действительно, любые предложения о том, как это сделать. Заранее спасибо.

ответ

4

Вы должны использовать .less's escaping особенность. Это будет выглядеть примерно так. firebug его или использовать chromes firebug как вещь, чтобы проверить путь, если это не работает, и вам нужно настроить его в корневую папку. вы можете хотя бы отрегулировать его после того, как он сбежал.

background: ~"url('inc/icons/Home.gif')"; 
+0

Я думаю, что этот путь заставляет меня или клиента смущать, когда смотри на файл 'inc.less', потому что относительный путь не имеет значения (не относится к файлу' inc.less') –

2

Вместо того, чтобы main.less в корне и другие меньше файлов в/вкл, положить все ваши меньше файлов в «CSS», «стили» или «меньше» папку. Затем вы можете использовать последовательный относительный путь к изображениям, выполнив «../icons/home.gif»

1

Относительный путь изображения относится к сгенерированному файлу CSS, а не к файлу LESS.