CodeKit不能使用@ font-face声明编译.less

时间:2014-02-10 17:17:17

标签: less codekit

  

初帖:我将项目从我的服务器移回本地   环境和现在.less文件将无法编译。

     

.kit和.js编译得很好。当我保存.less文件代码包时说   “成功代码套件已编译为xy.less”,但它没有生成任何内容。

     

此外,如果我在较少的文件中写一些垃圾,仍然有一个   成功的消息。

     

所有.less文件在代码工具包窗口中都很好地显示,但似乎   完全忽略较少的文件

     

osx Mavericks,codekit 1.9.3

我将问题缩小到.less导入中的@ font-face声明。 我使用myfonts.com的webfont我添加了myfonts.com css声明,如下所示:

@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'),在我的较少文件中包含此行,代码套件停止编译,但发出成功消息。

如果我在第四行写 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'),那是错的吗?

1 个答案:

答案 0 :(得分:3)

与您的结论相反,我认为问题是MyFonts用于跟踪网页浏览的@import声明,即:

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

这里,CodeKit中的LESS预处理器在缺少文件扩展名的URL时遇到问题。 该修复是在@import之后的括号中指明文件类型

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

[事实上,上面提到的CSS段不是显示 webfont所必需的,它可以正常工作(并且也不会阻塞CodeKit)。省略它可能会违反许可证,因为没有ping MyFonts的服务器,他们不知道你是否在webfont使用配额内。]