Использование CakePHP HTML Helper для компиляции .less на стороне клиента - PullRequest
1 голос
/ 25 января 2012

Сценарий: Я работаю с Less CSS в приложении Cake и хочу скомпилировать меньше файлов на стороне клиента, как они рекомендуют в документации (я также на git-репос несколькими другими программистами, поэтому я хочу, чтобы они редактировали меньше файлов вместо css… который перезаписывается при перекомпиляции):

  <head> 
    . . .
    <link rel="stylesheet/less" type="text/css" href="styles.less">
    <script src="less.js" type="text/javascript"></script>
    . . .
  </head>

Проблема: Я хранючем меньше файлов в webroot/css/lib и чем меньше файлов .js в webroot/js/vendors, тем более я хочу использовать помощник HTML для создания тегов ссылки / скрипта:

<?php echo $this -> Html -> css('lib/style.less'); ?>
<?php echo $this -> Html -> script('vendors/less-1.2.1.min.js');?>

Нет проблем с загрузкой.JS.Проблема заключается в том, что с помощью помощника css Cake добавляет «.css» к концу пути.

Решение:…?

Ответы [ 3 ]

3 голосов
/ 25 января 2012

Другое очень простое решение - включить файл .less без помощника :) Не думаю, что это имеет большое значение для вашего проекта.

3 голосов
/ 25 января 2012

Помощник html проверит, есть ли "?" в имени файла .. если нет, он добавляет ".css" в конце:

cake / libs / view / helpers / html.php ( ln. 356 )

if (strpos($path, '?') === false) {
    if (substr($path, -4) !== '.css') {
    $path .= '.css';
    }
}

возможно, вы можете обмануть помощника примерно так:

<?php echo $this -> Html -> css('lib/style.less?'); ?>

но я не уверен, что это сработает ... возможно, вам придется написать тег вручную = P

Приветствия

0 голосов
/ 25 мая 2013

Может быть, вам нравится этот плагин: https://github.com/BradCrumb/lesscompiler.

Это компонент, который автоматически компилирует меньше файлов в CSS-файлы

...