托管在另一个域上的Web字体

时间:2011-02-18 11:32:08

标签: css dns cloud cdn webfonts

我想知道是否可以在另一个域上托管webfonts, 我的CSS也托管在Amazon CloudFront和我的webfonts上,但它们没有出现,当我的css在本地时,它很好。

这是我在CloudFront上的style.css:

@font-face {
    font-family: 'Aller';
    src: url('/app/files/fonts/allerdisplay-webfont.eot');
    src: local('☺'), url('/app/files/fonts/allerdisplay-webfont.woff') format('woff'), url('/app/files/fonts/allerdisplay-webfont.ttf') format('truetype'), url('/app/files/fonts/allerdisplay-webfont.svg#webfontLZ8nc4vC') format('svg');
    font-weight: 900;
    font-style: normal;
}

样式表使用子域托管在CloudFront上:static.mydomain.com/style.css Webfont可以从以下网站下载:static.mydomain.com/app/files/fonts/allerdisplay-webfont.ttf

不幸的是,当从mydomain.com调用样式表时,它不会加载它。我想知道这是一个限制还是类似的东西。

由于

1 个答案:

答案 0 :(得分:2)

样式声明中URL的绝对路径应该没有问题。

在上面的代码中,您有相对路径网址 您需要一个绝对路径URL,例如:

“http://static.mydomain.com/app/files/fonts/allerdisplay-webfont.ttf”(绝对)

- 不是 -

“/ app / files / fonts / allerdisplay-webfont.ttf”(相对)

从理论上讲,根据子域的体系结构,您可能能够设法维护相对URL,但这不值得。只需使用一个绝对的,并完成它。

[以下建议在发布相关代码之前发布] 但是Google Web Fonts通过将整个样式表移动到云来实现所有这一切。如果你无法在样式表中运行它,你可以尝试创建一个单独的样式表。

但请注意,要获得真正的跨浏览器兼容性,您需要一堆不同的字体文件格式......这可能是问题所在。 FontSquirrel有一个字体套件生成器,您可能需要检查它。