【问题标题】:@font-face stopped working@font-face 停止工作
【发布时间】:2016-09-27 11:22:48
【问题描述】:

不知道为什么,但@font-face 已停止在我的一些网站(Blogger 和 Wordpress)上工作。我之前使用 Google Drive 来托管字体如下:

@font-face {font-family: 'Biloxi';
src: url('https://googledrive.com/host/0Bybz--lLp5SvZmc0SGRGOVB4dEE/Biloxi Script-webfont.eot');
src: url('https://googledrive.com/host/0Bybz--lLp5SvZmc0SGRGOVB4dEE/Biloxi Script-webfont.eot') format('embedded-opentype'),
 url('https://googledrive.com/host/0Bybz--lLp5SvZmc0SGRGOVB4dEE/Biloxi Script-webfont.woff') format('woff'),
 url('https://googledrive.com/host/0Bybz--lLp5SvZmc0SGRGOVB4dEE/Biloxi Script-webfont.ttf') format('truetype'),
 url('https://googledrive.com/host/0Bybz--lLp5SvZmc0SGRGOVB4dEE/Biloxi Script-webfont.svg') format('svg');
font-weight: normal;
font-style: normal;}

当它停止工作时,我尝试在我的服务器上托管字体并链接到如下文件中的字体,但即使这样也没有加载我觉得奇怪的字体。

@font-face {
font-family: 'Shorelines Script';
src: url('ShorelinesScriptBold.eot');
src: url('ShorelinesScriptBold.eot?#iefix') format('embedded-opentype'),
    url('ShorelinesScriptBold.woff') format('woff'),
    url('ShorelinesScriptBold.ttf') format('truetype');
font-weight: normal;
font-style: normal;

}

它似乎是零星的,所以字体会加载一分钟,但是你刷新它就不会加载(例如http://hummingbirdgattodesign.blogspot.co.uk/)。问题出现在 Blogger 和 Wordpress 上,似乎出现在 Chrome 和 Firefox 上。

作为一个相对缺乏经验的编码人员,非常感谢任何帮助!

【问题讨论】:

  • 第 1 步:删除所有不再支持的字体格式。 woff/woff2 用于现代浏览器,eot 如果你需要 IE8 或更早的支持(你不应该这样做,因为微软终于在大约一年前放弃了 IE8 及更低版本)。其他一切要么是死格式(如.svg)要么是冗余格式(如ttf/otf,它们已经被woff逐字节包装,并且没有正确支持ttf/otf但不支持的浏览器woff)

标签: css wordpress fonts blogger


【解决方案1】:

浏览器似乎阻止了对 Web 字体文件的请求,因为它们没有通过 Access-Control-Allow-Origin 标头集发送。在 Chrome/Firefox 的开发者工具中查看控制台,您会看到错误:

来自“https://googledrive.com”的字体已被跨域资源共享策略阻止加载:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://hummingbirdgattodesign.blogspot.co.uk' 不允许访问。响应的 HTTP 状态代码为 502。

我建议您寻找一个替代位置来托管字体文件,因为我认为 Google Drive 不会为您设置此标头(例如:Access-Control-Allow-Origin error on Google Drive web site)。通过Amazon AWSGoogle Cloud 平台提供服务,您可以更好地控制此类事情。

【讨论】:

  • 非常感谢您,但是我已经尝试在我的域上托管字体(例如这里的标题字体:halfmoongatto.blogspot.co.uk),它似乎正在拉出相同的错误消息。有没有办法解决这个问题?
  • 那里似乎发生了同样的事情。您可以控制您的网络服务器吗?如果是这样,您可以将其配置为发送适当的标头:enable-cors.org/server.html
猜你喜欢
  • 2014-10-12
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 2017-09-05
  • 2015-02-08
  • 2019-01-14
  • 1970-01-01
相关资源
最近更新 更多