我想知道是否可以在另一个域上托管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调用样式表时,它不会加载它。我想知道这是一个限制还是类似的东西。
由于
答案 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有一个字体套件生成器,您可能需要检查它。