我想知道为什么 Cloulflare 不会缓存某个静态 js 文件。
鉴于要求:
curl -I http://www.testlifeinuk.com/dist/lifeinuk.js
Run Code Online (Sandbox Code Playgroud)
标题返回如下:
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
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,无论我做了多少次请求,它总是返回
CF-Cache-Status: MISS
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
您必须在 CloudFlare 管理面板中设置页面规则。使用页面规则的第一步是定义一个模式,该模式定义何时触发规则。这些模式可以很简单,例如单个 URL,也可以很复杂,包括多个通配符。想象一下,您有一个只有一个 URL 的内容管理系统:
http://www.testlifeinuk.com
Run Code Online (Sandbox Code Playgroud)
现在,如果您尝试使用 URL 模式创建规则:
http://www.testlifeinuk.com
Run Code Online (Sandbox Code Playgroud)
只有主页会被缓存!
如果你想缓存整个网站,你必须以这种方式使用通配符:
*testlifeinuk.com/*
Run Code Online (Sandbox Code Playgroud)
这样,所有页面和资源都将被 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
Run Code Online (Sandbox Code Playgroud)
标题的结果将是:
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
Run Code Online (Sandbox Code Playgroud)
问候
| 归档时间: |
|
| 查看次数: |
10541 次 |
| 最近记录: |