簡體   English   中英

GTMetrix沒有獲取我的S3文件的Cache-Control標頭

[英]GTMetrix doesn't get my S3 files' Cache-Control headers

我正在以下網站上工作:www.ekamat.es

當我運行GTMetrix測試時,它在幾件事上顯示出可怕的結果。 其中之一是我的一些資源到期。 它顯示以下消息:(未指定到期時間)

這些文件已上傳到Amazon S3,並且我將緩存控件設置為近一個月(2592000)。 我可以肯定,因為當我在Chrome中打開這些資源之一並使用開發者控制台對其進行檢查時,它會顯示以下信息:

Age:3146
Cache-Control:2592000
Connection:keep-alive
Date:Wed, 04 May 2016 01:46:04 GMT
ETag:"70e17baac2c3e15e2df0064dd2466d4a"
Server:AmazonS3
Via:1.1 7acf1813f9ec06038d676de15fcfc28f.cloudfront.net (CloudFront)
X-Amz-Cf-Id:c4ERes-XPeGiwTOzMEwqyvNZlPtDih-uV77WCI6Jr0OAWnohkHGW6Q==
X-Cache:Hit from cloudfront

另外,在我的.htaccess文件中,我有以下內容:

<IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpeg|jpg|png|gif|swf|css|js)$">
Header set Cache-Control "max-age=604800, public"
Header append Vary: Accept-Encoding
</FilesMatch>
<FilesMatch "\\.(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
</IfModule>

那么,您如何解釋GTMetrix沒有顯示正確的信息? 他們使用的是我網站的舊版本,還是我的錯誤或配置錯誤?

先感謝您!

這是無效的:

Cache-Control: 2592000

...它應該是...

Cache-Control: max-age=2592000

...要么...

Cache-Control: public, max-age=2592000

https://tools.ietf.org/html/rfc7234#section-5.2.2

如果該.htaccess文件位於S3上,則可以將其刪除。 S3不處理那些。 但是,大概是在另一台服務器上,在這種情況下,您可以忽略此段。

在S3中更正對象之后,您需要使 CloudFront中的* (所有內容) 無效 ,以清除無效對象的CloudFront邊緣緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM