我遇到以下错误来自“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>
我需要帮助吗
答案 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}}