无法使用@font-face 加载字体

Unable to load fonts using @font-face

我正在尝试使用@font-face 添加 'MyriadPro' 字体。这是 fiddle

HTML代码:

<h1> Test Heading </h1>

CSS代码:

@font-face {
font-family: 'MyriadPro Regular';
  src: url('http://consumemarketing.com/thai-works/MyriadPro-Regular.woff') format('woff'),    /* FF 3.6, Chrome 5, IE9 */
        url('http://consumemarketing.com/thai-works/MyriadPro-Regular.ttf') format('truetype'), /* Opera, Safari */
        url('http://consumemarketing.com/thai-works/MyriadPro-Regular.svg#font') format('svg'); /* iOS */
}
h1{
  font-family: 'MyriadPro Regular', sans-serif;  
}

我已经尝试在本地进行测试,但不起作用,不确定缺少什么。

您将 MyriadPro 拼写为 MyriaedPro

h1{
  font-family: 'MyriadPro Regular', sans-serif;  
}

已编辑

这是控制台中显示的错误。

Font from origin 'http://consumemarketing.com' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

这是您 fiddle 中显示的错误。

Mixed Content: The page at 'https://jsfiddle.net/krish7878/27tp756L/' was loaded over HTTPS, but requested an insecure font 'http://consumemarketing.com/thai-works/MyriadPro-Regular.woff'. This request has been blocked; the content must be served over HTTPS.

您正在尝试在本地加载字体,这是不允许的,因为请求的资源没有 header 并且在您的 JSFiddle 中,它不允许加载字体,因为它来自不安全的来源 (http)。所以不如在本地下载字体并尝试使用它们,这确实有效。

您尝试从中加载字体的网站阻止将字体加载到您的页面上,因为网络字体受 Cross-Origin 资源共享 (CORS) 约束。 CORS 基本上是远程主机控制对某些类型资源的访问的一种方式,因此在没有服务器所有者的情况下,您尝试通过修改其 .htaccess 文件以包含 header 来访问字体以允许CORS,您无法从该服务器使用这些字体。
更多关于 CORS 的信息 can be found here 如果您想了解更多。

最简单的做法是下载您指定的字体,方法是将您在@font-face 属性 中使用的 URL 放入您的浏览器,然后将它们放入您站点文件夹所在的文件夹,并修改 @font-face URL 以指向您的本地文件夹。
例如,如果您要将字体下载到站点文件夹中名为 /fonts 的子文件夹中,您可以将 @font-face src 修改为以下内容:

@font-face {
    font-family: 'MyriadPro Regular';
    src: url('fonts/MyriadPro-Regular.woff') format('woff'),    /* FF 3.6, Chrome 5, IE9 */
    url('fonts/MyriadPro-Regular.ttf') format('truetype'), /* Opera, Safari */
    url('fonts/MyriadPro-Regular.svg#font') format('svg'); /* iOS */
}

除了避免你的问题,另一件事是通过将文件存储在本地,它大大减少了用户的加载时间,因为它不依赖于外部服务器提供文件。
希望这一切都清楚了。