这里有一个非常简单的例子,使用从CDN获取的JQuery来修改页面。
当您使用互联网连接加载此页面时,页面将显示“Hello Gabe”。然后,当我关闭互联网连接时,该页面会显示一个错误的“Hello Dean” -- JQuery不可用。
我的理解是CDN在头部响应中有长时间的Cache-Control和Expire,这意味着浏览器将本地缓存该文件。
但是这似乎并没有发生。有人能解释一下正在发生什么吗?还有,我该如何让浏览器使用缓存中的JQuery副本?
出现这个问题是因为我们想使用CDN来服务外部库,但也希望能够离线开发页面,比如在飞机上。
我在Chrome和Firefox中遇到了类似的行为。
<html>
<body>
<p>Hello Dean!</p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>$("p").html("Hello, Gabe!")</script>
</body>
</html>
当您使用互联网连接加载此页面时,页面将显示“Hello Gabe”。然后,当我关闭互联网连接时,该页面会显示一个错误的“Hello Dean” -- JQuery不可用。
我的理解是CDN在头部响应中有长时间的Cache-Control和Expire,这意味着浏览器将本地缓存该文件。
$ curl -s -D - https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js | head
HTTP/1.1 200 OK
Server: cloudflare-nginx
Date: Fri, 17 Apr 2015 16:30:33 GMT
Content-Type: application/javascript
Transfer-Encoding: chunked
Connection: keep-alive
Last-Modified: Thu, 18 Dec 2014 17:00:38 GMT
Expires: Wed, 06 Apr 2016 16:30:33 GMT
Cache-Control: public, max-age=30672000
但是这似乎并没有发生。有人能解释一下正在发生什么吗?还有,我该如何让浏览器使用缓存中的JQuery副本?
出现这个问题是因为我们想使用CDN来服务外部库,但也希望能够离线开发页面,比如在飞机上。
我在Chrome和Firefox中遇到了类似的行为。