【发布时间】:2014-02-21 14:17:46
【问题描述】:
由于“bad URI or cross-site access not allowed”问题,通过 Cloudfront 提供的字体在 Firefox 中被破坏。为了解决这个问题,我知道我需要将“Access-Control-Allow-Origin”标头设置为通配符或源域。
我遇到的问题是 Cloudfront 似乎不接受来自源的标头。
例如,以下是我在 ping 服务器以获取字体时获得的标头列表:
curl -I -s "https://mysite.com/wp-content/themes/my-theme/includes/fonts/ProximaNova-Reg-webfont.ttf"
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 29 Jan 2014 16:03:03 GMT
Content-Type: application/x-font-ttf
Content-Length: 44992
Last-Modified: Tue, 28 Jan 2014 22:21:41 GMT
Connection: keep-alive
ETag: "52e82d75-afc0"
Expires: Thu, 29 Jan 2015 16:03:03 GMT
Cache-Control: max-age=31536000
Access-Control-Allow-Origin: https://mysite.com
Access-Control-Allow-Methods: GET
Access-Control-Max-Age: 3600
Accept-Ranges: bytes
这个响应看起来一切都很好;但是,当我 ping Cloudfront 获取相同的资源时,我得到:
curl -I -s "https://ds6dj5kp03o39.cloudfront.net/wp-content/themes/my-theme/includes/fonts/ProximaNova-Reg-webfont.ttf"
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 44992
Connection: keep-alive
Date: Wed, 29 Jan 2014 16:22:30 GMT
Server: Apache/2.2.16 (Debian) mod_ssl/2.2.16 OpenSSL/0.9.8o
Last-Modified: Wed, 22 Jan 2014 02:44:45 GMT
ETag: "5d633-afc0-4f0861b87a140"
Accept-Ranges: bytes
Cache-Control: max-age=3600
Expires: Wed, 29 Jan 2014 17:22:30 GMT
X-Cache: Miss from cloudfront
Via: 1.1 850e11212c3f83bfb138469e9b3b7718.cloudfront.net (CloudFront)
X-Amz-Cf-Id: M4qkj9FwjdAUW91U4WeZzxEI0m7vOmiQvryS55WwoeU5Ks11IC71ig==
似乎所有原始标头都被完全忽略了。我的问题是,如何让 Cloudfront 接受我的资产标头,尤其是关键的“Access-Control-Allow-Origin”标头?
感谢您的帮助!
【问题讨论】:
-
嘿,我仍然不明白链接的问题是如何得到回答的:在您的服务器上设置标题。我的想法是,您必须在要连接的服务器上设置标头。很好,不能对 cmets 投反对票,因为我在这里一定是个白痴。
-
是的...这也可能是我的问题 ;) 我认为 supposed 会发生的是您在服务器上设置的一些标头由 CloudFront 保留.他们显然会覆盖其中的一些,但我认为他们会坚持其中的一些。很多人都写过关于这种方法的文章,但它对我不起作用。也许这个假设完全是错误的。
标签: cors cdn amazon-cloudfront