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

时间:2016-08-18 06:02:07

标签: html css fonts font-face

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

HTML code:

<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;  
}

我试图在本地测试,不起作用,不确定缺少什么。

2 个答案:

答案 0 :(得分:1)

您将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.

这是你小提琴中显示的错误。

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.

您正在尝试在本地加载字体,这是不允许的,因为请求的资源没有标题,并且在JSFiddle中,它不允许加载字体,因为它来自不安全的来源(http) 。因此,请在本地下载字体并尝试使用它们,这肯定会有效。

答案 1 :(得分:1)

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

最简单的方法是下载您指定的字体,方法是将您在@ font-face属性中使用的URL放在浏览器中,然后将它们放在您网站文件夹的文件夹中,修改@ font-face URL以指向您的本地文件夹 例如,如果您要将字体下载到名为@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 */ } 的子文件夹中的网站文件夹中,则可以将@ font-face src修改为以下内容:

public bool KeywordExists(string keyWord)
{
    using (PdfReader reader = new PdfReader(pdfPath))
    {
        StringBuilder strText = new StringBuilder();    
        for (int i = 1; i <= reader.NumberOfPages; i++)
        {
            strText.Append(PdfTextExtractor.GetTextFromPage(reader, i));
            if(strText.Contains(keyWord)) return true;
        }
        return false;
     }
}

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