跨源资源共享策略字体

Joa*_*lai 2 amazon-cloudfront

我在亚马逊云端使用W3 Total Cache.我有我的htaccess文件:

# BEGIN W3TC CDN
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
# END W3TC CDN 
Run Code Online (Sandbox Code Playgroud)

但仍然得到错误:

来自" https://example.cloudfront.net "的字体已被跨源资源共享策略阻止加载:请求的资源上没有"Access-Control-Allow-Origin"标头.因此,不允许来源" https://www.example.com "访问.

为什么会这样?

Yao*_*Yao 7

在此链接中找到解决方案:https://www.naschenweng.info/2014/09/23/wordpress-w3-total-cache-cloudfront-font-cors-issue/.

您需要更改CloudFront分配的行为设置:

  • 将"转发标题"从"无"更改为"白名单"
  • 将"Origin"添加到"白名单标题"
  • 确保选中"使用原始缓存标头"

然后使缓存的字体无效.


小智 2

基本上这是因为字体未设置为在您所在的域之外共享,因此您可以将其用作资源,在本例中为https://example.cloudfront.net

不过,这可以在网络服务器设置中更改。