来自子域的字体已被跨源资源共享策略阻止

时间:2016-06-19 20:18:32

标签: wordpress .htaccess cors

我遇到以下错误来自“http://static.example.com”的字体已被跨源资源共享策略阻止加载:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“http://www.example.com”访问。

我在下面的.htaccess文件中使用以下COR设置

<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresDefault "access plus 1 month"
  ExpiresByType text/cache-manifest "access plus 0 seconds"

  ........

  <IfModule mod_headers.c>
     Header append Cache-Control "public"
     <FilesMatch "\.(ttf|otf|eot|woff|svg)$">
       SetEnvIf Origin "^http://(.*)?example.com$" origin_is=$0
       Header set Access-Control-Allow-Origin %{origin_is}e env=origin_is
     </FilesMatch>
     <FilesMatch "\.(js|css|xml|gz)$">
       Header append Vary: Accept-Encoding
     </FilesMatch>
  </IfModule>
</IfModule>

我需要帮助吗

3 个答案:

答案 0 :(得分:13)

.htaccess文件中尝试此操作:

# Allow font assets to be used across domains and subdomains
<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
  <IfModule mod_headers.c>
     Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch>

您可以在我发现的这篇优秀文章中详细了解此问题:https://expressionengine.com/learn/cross-origin-resource-sharing-cors

答案 1 :(得分:1)

尝试将此添加到.htaccess文件中:

Header add Access-Control-Allow-Origin "http://example.com"

替代:

Header add Access-Control-Allow-Origin "*"

答案 2 :(得分:0)

您也可以尝试

<FilesMatch ".(eot|ttf|otf|woff)">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>

更多{@ {3}}