在Windows 8.1下载webfont时,浏览器出现206部分内容错误

时间:2014-11-10 10:41:46

标签: html css windows apache

在Windows 8.1下的任何浏览器中,字体都不会在我的网站上正确显示,因为网站的webfont文件未下载且服务器仅提供206 Partial Content错误响应。例如,不会发生错误。在Windows 7下,没有给出错误消息,正确下载字体。它是Windows指定的错误还是其他什么? webfonts位于同一服务器和相同的子目录中。

1 个答案:

答案 0 :(得分:1)

我的网站上出现了同样的错误。我不相信这是一个特定于PC的问题,因为我已经在我的Vista PC和7 PC上看到了这个问题。它可能与字体文件的传递有关。这就是我所做的,设法修复它:

  • 将字体文件移至根目录
  • 在根目录中创建.htaccess文件(参见底部)
  • 在apache2.conf文件中添加额外的代码行(见底部)
  • 最后,使用 www
  • 引用CSS中的字体

示例:

执行:

@font-face {
    font-family: 'familyName';
    src: url('//www.example.com/myfont.ttf') format('truetype');
}

注意^^上面的 www 并删除http :(删除http:前缀有助于您的网站引用http和https


不要这样做:

@font-face {
    font-family: 'familyName';
    src: url('http://example.com/myfont.ttf') format('truetype');
}

适用于 Firefox Chrome ,在IE9中似乎没有。这似乎也解决了第一次网页访问时不会加载"字体的问题。问题,只在网站的第二个视图上加载字体。

我没有经过测试,看看它是否可以正常使用,但请确保您的区域文件中包含www CNAME记录。


.htaccess文件:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

apache2.conf的额外行

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
<FilesMatch "\.(ttf|otf|eot)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>

对apache2.conf文件进行更改后,通过

更新并重新启动apache
sudo a2enmod headers
sudo service apache2 restart