Azure CDN上的ttf字体文件出现CORS错误

时间:2019-02-25 20:20:45

标签: azure fonts cors cdn

我有一个使用Verizon Premium SKU创建的CDN。涉及字体时,我收到“从原点'https://myfqdn.com'被CORS策略阻止:所请求的资源上没有'Access-Control-Allow-Origin'标头”

但是,我没有遵从此文档https://docs.microsoft.com/en-us/azure/cdn/cdn-cors

但是,如果我转到https://cdn.myfqdn.com(是的,我有一个自定义域并启用了https),则页面加载不会出现问题。

这是我根据上面的文档创建的规则中的XML。

 <rules schema-version="2" rulesetversion="6" rulesetid="945266" xmlns="http://www.whitecdn.com/schemas/rules/2.0/rulesSchema.xsd">
  <rule id="1823263" platform="http-large" status="active" version="3" custid="A76A4">
    <!--Changed by userId: 952 on 02/25/2019 03:45:01 PM GMT-->
    <!--Changed by xxx@cdn.windowsazure.com on 02/25/2019 03:25:23 PM GMT from IP: xxx.xxx.xxx.xxx-->
    <description>Wildcard</description>
    <!--If-->
    <match.request-header.wildcard name="Origin" result="match" value="Https://myFQDN.com" ignore-case="true">
      <feature.set-request-header action="set" key="Access-Control-Allow-Origin" value="*" />
      <feature.set-request-header action="set" key="Access-Control-Allow-Headers" value="*" />
      <feature.set-request-header action="set" key="Access-Control-Allow-Methods" value="GET, HEAD, OPTIONS" />
      <feature.set-request-header action="set" key="Access-Control-Expose-Headers" value="*" />
    </match.request-header.wildcard>
  </rule>
</rules>

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我在博客中也遇到了这个问题。除字体和图标外,所有文件均从CDN加载。我必须做两件事。一种是允许Azure Web应用程序中的所有来源,另一种是通过编辑web.config在IIS中配置文件。

只需登录到Azure门户,然后转到Azure Web应用程序。单击API下的CORS菜单,然后单击*作为允许的来源。

enter image description here

Azure App Service中IIS不会提供扩展名为.woff2,.woff和.ttf的默认文件。这就是导致CORS问题的原因。我们将这些配置添加到system.webServer标记中,该标记是配置标记的子标记。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
     <staticContent>
      <mimeMap fileExtension="woff" mimeType="application/font-woff" />
      <mimeMap fileExtension="woff2" mimeType="application/font-woff2" />
      <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".ttc" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".otf" mimeType="application/octet-stream" />
    </staticContent>
  </system.webServer>
</configuration>

您也可以通过添加名为“启用静态Web字体”的扩展名来执行此操作。我为此写了一个详细的博客you can read it here