"访问字体..已被CORS政策阻止"仅在一个文件

时间:2017-06-15 18:18:04

标签: wordpress amazon-web-services amazon-s3 cdn amazon-cloudfront

  

注意:我正在使用Wordpress并通过Amazon CloudFront / S3提供媒体文件,css,js等。

您好, 我知道有很多这样的帖子,但我还在苦苦挣扎。我能够为我正在加载的大多数字体文件修复此问题,但是,这仍然是一个问题。

Access to Font at 'http://mycloudfrontID.cloudfront.net/wp-content/themes/bridge/css/font-awesome/fonts/fontawesome-webfont.woff2?v=4.6.3' from origin 'http://mydomainname' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://maxmajor.net' is therefore not allowed access.

将其添加到AWS S3上的CORS策略后,其他字体文件就可以了:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

这是我的.htaccess:

<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css)$">
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>

为什么这个错误仍在解决?

谢谢, 布赖恩

3 个答案:

答案 0 :(得分:1)

尝试改变:

export FABRIC_CFG_PATH=$PWD
export CHANNEL_NAME=my_channel
export CORE_PEER_LOCALMSPID="Org1MSP"

export CORE_PEER_TLS_ROOTCERT_FILE=crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt

export CORE_PEER_MSPCONFIGPATH=crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

export CORE_PEER_ADDRESS=peer0.org1.example.com:7001

peer channel create -o orderer:7040 -c $CHANNEL_NAME -f channel-artifacts/channel.tx --tls true --cafile $ORDERER_CA >&log.txt

用这个:

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

我也读过 How does Access-Control-Allow-Origin header work?

Font from origin has been blocked from loading by Cross-Origin Resource Sharing policy

出于安全原因,您必须包含您的网址。

所以,你的.htaccess应该有这个:

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

适合我!

答案 1 :(得分:1)

您确定要向Authorization个字体请求发送GET个标头吗?

如果没有,请在S3 CORS策略更改中

<AllowedHeader>Authorization</AllowedHeader>

<AllowedHeader>*</AllowedHeader>

这个小小的错过了我一个月。

答案 2 :(得分:0)

您是否考虑过引用以下线程?
CORS Issue with woff2 fonts behind CDN in Chrome  

它说

  

事实证明,问题实际上出在 Content-Type 上。一旦我将内容类型更改为application / font-woff2 ,并使这些woff2文件的缓存失效,一切就顺利进行了。