Schriftarten, die über Cloudfront bereitgestellt werden, sind in Firefox aufgrund des Problems "bad URI or cross-site access not allowed" beschädigt. Um dies zu beheben, muss der Header "Access-Control-Allow-Origin" auf einen Platzhalter oder die Quelldomäne gesetzt werden.Festlegen von Access-Control-Allow-Origin auf Cloudfront Cached-Objekt
Das Problem, das ich habe, ist, dass Cloudfront Header von der Herkunft nicht akzeptiert scheint.
Zum Beispiel ist die folgende die Liste der Header ich bekomme, wenn ich meinen Server für die Schriftart 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
Alles sieht mit dieser Antwort gut; jedoch, wenn ich ping Cloudfront für die gleiche Ressource, die ich erhalten:
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==
Es scheint, dass alle der Herkunft Header vollständig ignoriert werden. Meine Frage ist, Wie bekomme ich Cloudfront, um meine Asset-Header zu akzeptieren, vor allem die kritische "Access-Control-Allow-Origin" -Header?
Danke für die Hilfe!
Hey, ich verstehe immer noch nicht, wie die verknüpfte Frage beantwortet wird: setze Header auf deinem Server. Ich denke, Sie müssen die Header auf dem Server, mit dem Sie sich verbinden, einstellen. Gut, dass man Kommentare nicht ablehnen kann, weil ich hier ein totaler Idiot sein muss. – loveNoHate
Ja ... das könnte auch mein Problem sein;) Ich denke, was passieren soll * ist, dass einige der Header, die Sie auf Ihrem Server setzen, von CloudFront beibehalten werden.Sie werden offensichtlich eine Reihe von ihnen außer Kraft setzen, aber ich dachte, sie würden einige von ihnen beibehalten. Viele Leute haben Artikel über diese Methode geschrieben, aber es funktioniert nicht für mich. Vielleicht ist diese Annahme einfach falsch. – tollmanz
Funktioniert das: http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html? – loveNoHate