记一次改字体的辛酸史,解决CDN跨域问题

建议本文搭配 使用Fontmin生成WebFont压缩字体 食用更佳

今天看到主题作者主页大标题用了这个字体,我一想哇还挺好看,也想自己整一个,看了看主题设置并没有更改字体的设置,只有头部标签引用,又回头看了看原页面,注意到了这两行代码,翻遍了他所有的评论知道这个字体叫方正粗金陵繁体

于是我从方正官网下到了这个字体的ttf版本,并相应转成了.eot.woff格式。 新建一个css,码入以下代码,因为针对classbrand的文字字体替换,所以直接定义

@font-face {
    font-family: 'f';
    src: url('https://cdn.elstec.cn/font/f.eot?#iefix') format('eot');/*IE*/
    src: url('https://cdn.elstec.cn/font/f.woff') format('woff'), url('f.ttf') format('truetype');/*non-IE*/
    }

    div.brand {
        font-family: 'f';
    }

主题设置head标签输出内容

<link rel="stylesheet" href="https://cdn.elstec.cn/zt.css" />
<style>.brand{font-family:'f';font-weight:normal;}</style>

我直接把字体重命名为f,因为好打。刷新一看,字体没更新,看到不允许跨域访问。

 ̄﹃ ̄
解决方案如下: 在nginx配置文件中做如下配置

location ~ .*\.(eot|ttf|ttc|otf|eot|woff|woff2|svg)(.*) {
    add_header Access-Control-Allow-Origin http(s)://example.com; 
}

在CDN进行HTTP Header配置,以腾讯云为例

在CDN设置中找到高级配置,添加HTTP Header,参数选择Access-Control-Allow-Origin,取值是你的域名完整格式,添加该配置等待CDN生效即可。

看完了全文为什么不评论一下呢?xd