Hier ist ein sehr einfaches Beispiel meine Frage mit JQuery von einem CDN zu veranschaulichen die Seite zu ändern:Warum lädt der Browser die cdn-Datei nicht aus dem Cache?
<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>
Wenn Sie laden Sie diese Seite mit Internet-Anschluss, zeigt die Seite „Hallo Gabe“. Wenn ich dann die Internetverbindung ausschalte, zeigt die Seite "Hallo Dean" mit einem Fehler an - JQuery ist nicht verfügbar.
Mein Verständnis ist, dass CDNs haben eine lange Cache-Control
und Expire
in der Header-Antwort, die ich verstehe, dass der Browser die Datei lokal zwischenspeichert.
$ 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
Aber das scheint nicht zu geschehen. Kann mir bitte jemand erklären, was vor sich geht? Außerdem - wie kann ich den Browser dazu bringen, die Kopie von JQuery irgendwo im Cache zu verwenden?
Diese Frage kam, weil wir CDNs verwenden möchten, um externe Bibliotheken zu bedienen, aber auch in der Lage sein möchten, die Seite offline zu entwickeln - wie in einem Flugzeug.
Ich bekomme ein ähnliches Verhalten mit Chrome und Firefox.
Ich fange gerade an, in dieses Problem auch zu schauen, aber hast du http://stackoverflow.com/q/5264783/2336725 gefunden? – Teepeemm
Schauen Sie nach, ob die Datei tatsächlich in Ihrem System in Chrome im Adressleisten-Typ "about: cache" zwischengespeichert ist. –