CodeKit не компилирует .less с объявлением @font-face

Исходное сообщение: я переместил проект со своего сервера обратно в локальную среду, и теперь файлы .less не компилируются.

.kit и .js хорошо компилируются. Когда я сохраняю файл .less, codekit говорит: «Набор кодов успеха скомпилирован xy.less», но ничего не генерирует.

Кроме того, если я пишу какой-то мусор внутри меньшего файла, сообщение об успехе все равно появляется.

Все файлы .less хорошо отображаются в окне набора кода, но, похоже, меньшее количество файлов полностью игнорируется.

osx Mavericks, набор кодов 1.9.3

Я сузил проблему до объявления @font-face внутри импорта .less. Я использую веб-шрифт с myfonts.com. Я добавил объявления css myfonts.com следующим образом:

@import url('//hello.myfonts.net/count/xy');
@font-face {
font-family: 'Blabla';
src:    url('/webfonts/29DFBD_0_0.eot');
src:    url('/webfonts/29DFBD_0_0.eot?#iefix') format('embedded-opentype'),
        url('/webfonts/29DFBD_0_0.woff') format('woff'),
        url('/webfonts/29DFBD_0_0.ttf') format('truetype');
}

Проблемная строка - это строка с format('embedded-opentype') с этой строкой внутри моих файлов less, комплект кода перестает компилироваться, но выдает сообщение об успешном завершении.

Если я напишу Hello World в четвертой строке:

@import url('//hello.myfonts.net/count/xy');
@font-face {
font-family: 'Blabla';
src:    url('/webfonts/29DFBD_0_0.eot'); Hello World
src:    url('/webfonts/29DFBD_0_0.eot?#iefix') format('embedded-opentype'),
        url('/webfonts/29DFBD_0_0.woff') format('woff'),
        url('/webfonts/29DFBD_0_0.ttf') format('truetype');
}

Codekit выдает мне ошибку.

Но если я напишу то же самое, одной строкой ниже:

@import url('//hello.myfonts.net/count/xy');
@font-face {
font-family: 'Blabla';
src:    url('/webfonts/29DFBD_0_0.eot');
src:    url('/webfonts/29DFBD_0_0.eot?#iefix') format('embedded-opentype'), Hello World
        url('/webfonts/29DFBD_0_0.woff') format('woff'),
        url('/webfonts/29DFBD_0_0.ttf') format('truetype');
}

Это выдает сообщение об успехе, и скомпилированный .css не изменяется.

Значит, это должна быть именно эта строка?: src: url('/webfonts/29DFBD_0_0.eot?#iefix') format('embedded-opentype'), что с этим не так?


person KSPR    schedule 10.02.2014    source источник
comment
У вас есть этот файл, настроенный на использование стиля вывода Compressed? Если это так, измените это на другой стиль вывода. Текущая версия Less имеет некоторые ошибки в компрессоре, которые не сообщают об ошибке, но также не могут создать выходной файл.   -  person Bryan    schedule 11.02.2014
comment
Нет. Установлено значение «Обычный».   -  person KSPR    schedule 13.02.2014


Ответы (1)


Вопреки вашему выводу, я предполагаю, что проблема заключается в объявлении @import, которое MyFonts использует для отслеживания просмотров страниц, то есть:

/* @import must be at top of file, otherwise CSS will not work */
@import url("//hello.myfonts.net/count/1a2b3c");

Здесь у препроцессора LESS в CodeKit возникают проблемы с URL-адресом, в котором отсутствует расширение файла. Исправление заключается в указании типа файла в квадратных скобках сразу после @import:

@import (css) url("//hello.myfonts.net/count/1a2b3c");

[На самом деле, вышеупомянутый сегмент CSS не нужен для отображения веб-шрифта, он отлично работает без него (и не душит CodeKit). Если его не указать, это может привести к нарушению лицензии, потому что без проверки связи с серверами MyFonts они не узнают, входите ли вы в квоту на использование веб-шрифтов.]

person Avant la lettre    schedule 23.05.2014