
我試圖找出為什麼 cloudfront 分發不透過 access-control-allow-origin 快取/發送。
當我捲曲我的網站:
HTTP/1.1 200 OK
Date: Sat, 03 Mar 2018 07:42:01 GMT
Content-Type: application/font-woff2
Content-Length: 77160
Connection: keep-alive
Set-Cookie: __cfduid=dda822a428a2dddb9113bbd425dba93e91520062921; expires=Sun, 03-Mar-19 07:42:01 GMT; path=/; domain=.flexrc.com; HttpOnly
Last-Modified: Fri, 02 Mar 2018 03:01:32 GMT
ETag: "5a98be8c-12d68"
Access-Control-Allow-Origin: *
CF-Cache-Status: HIT
Expires: Sat, 03 Mar 2018 11:42:01 GMT
Cache-Control: public, max-age=14400
Accept-Ranges: bytes
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 3f5a76ca7ddd3b50-YVR
但是當我捲曲 cloudfront 檔案時:
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 66624
Connection: keep-alive
Date: Sat, 03 Mar 2018 03:13:25 GMT
Last-Modified: Sun, 21 Feb 2016 22:02:50 GMT
ETag: "56ca340a-10440"
CF-Cache-Status: HIT
Expires: Sat, 03 Mar 2018 07:13:25 GMT
Cache-Control: public, max-age=14400
Accept-Ranges: bytes
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 3f58ed5738b09668-SJC
X-Cache: RefreshHit from cloudfront
Via: 1.1 f42a8d19b16850af801ce5662fc9fdab.cloudfront.net (CloudFront)
X-Amz-Cf-Id: HBJgB_UBz1pKdUQf-08bsZDXGE3Cv9GD6X9e3aUx_R8ejPdlQxGD8g==
在“編輯行為”為了“基於選定的請求標頭進行快取”我已經添加了白名單Origin
和Access-Control-Allow-Origin
我還多次使物件無效,並且我也在等待分發進度完成。
我沒有使用S3。
我也檢查過在 Cloudfront 設定 Access-Control-Allow-Origin
但這對我沒有幫助。
任何建議表示讚賞。
答案1
在重新測試之前嘗試清除 Cloudfront 快取 - 整個回應都會被緩存,包括標頭。我猜發生的事情是:
- CF 的 ACAO 已關閉
- 對 CF 進行curl - 將沒有 ACAO 的回應拉入緩存
- 設定已變更為啟用 ACAO
- 發出請求 - CF 中的 HIT,因此未反映設定變更。
因此,如果您清除快取並重試,您將獲得一個使用正確標頭產生的新快取物件。