tideSDK + less.js + SVG font-face

时间:2013-04-11 19:05:57

标签: svg less font-face tidesdk

我刚刚开始尝试使用TideSDK将网站部署到.exe和.app,这在很大程度上是非常棒的。

我目前遇到的问题是我的所有CSS样式都是使用less.js框架编写的.less样式。在这里,我声明了自定义的font-faces,当部署到标准的Web浏览器时,它们适用于使用它们的所有元素。

当通过Tide部署时,除非我将所有样式都放在无格式样式表中并将它们放回常规的.CSS文件中,否则它似乎不会粘住,这让我相信有某种编译时间在部署应用程序的实际视图时更改Tide正在内部使用。

我不知道如何解决这个问题。作为一个说明,我没有得到任何

[Error] Error finding
来自Tide控制台的错误导致我相信找到了.svg,只是没有应用。

更新:

似乎我在src:url('...')中使用了错误的语法,因此.less文件中的CSS实际上是静默失败的。我现在得到一个非常奇怪的[错误]错误找到.svg的文件。这行CSS中的URL由app预先添加:3次。

1 个答案:

答案 0 :(得分:2)

经过几个小时的研究,我终于弄明白了。当您使用这些框架的组合时需要注意的事项:

  1. 当使用

    时,less.js吐出非常奇怪的路径目录

    src:url('...');

    作为解决方案,您可以使用less中可用的import指令,并将@ font-face声明放在该.css样式表中。通过导入普通的.css样式表,您告诉less.js将其视为常规.css,并且不会发生吐出的多路复用网址。

    @import“../ css / style.css”;

  2. 在放置导入指令并确认在Chrome检查器的资源 - 字体下确实生成了SVG之后,我继续查看SVG文件本身,以确定CSS中是否有错误SVG文件的命名约定。根据此answer和其中的blog post,您的SVG名称应该使用:

    字体家庭

  3. 来自SVG元数据的命名方案中的

    src: url('YourSVGFont.svg#Silkscreen') format('svg');
    

    实际上,你应该使用字体id,至少在我的情况下是解决方案:

    src: url('YourSVGFont.svg#slkscrb') format('svg');
    

    这是博客帖子中嵌入的image,以便您可以看到我在说什么,并查看这两个名称放在SVG元数据中的哪个位置。