Ecco un esempio molto semplice per illustrare la mia domanda utilizzando jQuery da una CDN per modificare la pagina:Perché il browser non carica il file cdn dalla 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>
Quando si carica la pagina con una connessione internet, viene visualizzata la pagina "Ciao Gabe". Quando spengo la connessione Internet, la pagina visualizza "Ciao Dean" con un errore - JQuery non è disponibile.
La mia comprensione è che i CDN hanno un numero lungo Cache-Control
e Expire
nella risposta dell'intestazione, il che significa che il browser memorizza il file nella cache localmente.
$ 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
Ma questo non sembra accadere. Qualcuno può spiegare cosa sta succedendo? Inoltre, come posso ottenere che il browser utilizzi la copia di JQuery nella cache da qualche parte?
Questa domanda è nata perché vogliamo utilizzare le CDN per servire le librerie esterne, ma vogliamo anche essere in grado di sviluppare la pagina offline, come su un aereo.
Ho un comportamento simile con Chrome e Firefox.
Sto solo iniziando a esaminare questo problema, ma hai trovato http://stackoverflow.com/q/5264783/2336725? – Teepeemm
Dai un'occhiata per vedere se il file è effettivamente memorizzato nella cache nel tuo sistema su chrome nella barra degli indirizzi digita "about: cache". –