Cloulflareが特定の静的jsファイルをキャッシュしないのはなぜでしょうか。
Reuqestを考えると:
curl -I http://www.testlifeinuk.com/dist/lifeinuk.js
ヘッダーは次のように返されます:
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2015 10:59:21 GMT
Content-Type: application/javascript
Connection: keep-alive
Set-Cookie: __cfduid=d11a9f01292153436a211a9d807a3399b1421060361; expires=Tue, 12-Jan-16 10:59:21 GMT; path=/; domain=.testlifeinuk.com; HttpOnly
X-Powered-By: Express
Etag: W/"507660-1420797981000"
Cache-Control: public, max-age=1382400
Last-Modified: Fri, 09 Jan 2015 10:06:21 GMT
Vary: Accept-Encoding
Via: 1.1 vegur
CF-Cache-Status: MISS
Expires: Wed, 28 Jan 2015 10:59:21 GMT
Server: cloudflare-nginx
CF-RAY: 1a78d818b4af0b81-LHR
私を困惑させるのは、何回リクエストをしても、それは常に戻るということです
CF-Cache-Status: MISS
なぜだろう?
CloudFlare管理パネルでページルールを設定する必要があります。ページルールを使用する最初のステップは、ルールがトリガーされるタイミングを定義するパターンを定義することです。これらのパターンは、単一のURLなどの単純なものでも、複数のワイルドカードを含む複雑なものでもかまいません。あなたが単一のURLを持つコンテンツ管理システムを持っていると想像してください:
http://www.testlifeinuk.com
次に、URLパターンを使用してルールを作成しようとすると、
http://www.testlifeinuk.com
ホームページのみがキャッシュされます!
Webサイト全体をキャッシュしたい場合は、ワイルドカードを次のように使用する必要があります。
*testlifeinuk.com/*
このようにして、すべてのページとリソースは次のようにCloudflareによってキャッシュされます。
http://www.testlifeinuk.com/dist/lifeinuk.js
http://www.testlifeinuk.com/mypage.html
https://www.testlifeinuk.com/mypage.html
https://testlifeinuk.com/mypage.html
ヘッダーの結果は次のようになります。
HTTP/1.1 200 OK
Date: Mon, 25 May 2015 10:21:05 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.4.39-0+deb7u2
Expires: Mon, 25 May 2015 10:51:05 GMT
Cache-Control: public, max-age=1800
Pragma: no-cache
Vary: Accept-Encoding
CF-Cache-Status: HIT <<<<< Look this parameter
Server: cloudflare-nginx
CF-RAY: 1ec082ee43150e60-MXP
Content-Encoding: gzip
よろしく
@Michelangeloが最初にCloudFlareページルールを設定する必要があることについて述べたことは別にして、デフォルトのキャッシュ動作を上書きしないように、応答ヘッダーが正しく設定されていることを確認する必要もあります。
Cache-Controlヘッダーが「private」、「no-store」、「no-cache」、または「max-age = 0」に設定されている場合、または応答にcookieがある場合、CloudFlareはキャッシュをキャッシュしません資源。それ以外の場合、Cache-Controlヘッダーが「public」に設定され、「max-age」が0より大きい場合、またはExpiresヘッダーが将来いつでも設定される場合は、リソースをキャッシュします。
参照: https://support.cloudflare.com/hc/en-us/articles/202775670-How-Do-I-Tell-Cloudflare-What-to-Cache-
そして、そのため、@ Rudy Leeは、ExpressではデフォルトのmaxAge
が0であるため、maxAge
オプションを設定することを忘れないでくださいと述べました。
もう1つの可能性は、.htaccessで定義されているものがCloudflareのキャッシュと競合している可能性があります。有効期限ヘッダーが設定されている場合、それらはCloudflareのキャッシュ設定をオーバーライドします。私はこれが自分のウェブサイトのケースであることがわかりました https://cf-cache-status.net