2015-08-22 21 views
10

In ExpressJS per NodeJS, siamo in grado di effettuare le seguenti operazioni:I file di cache express.static() nella memoria?

app.use(express.static(__dirname + '/public')); 

per servire tutti i CSS statica, JS, e file di immagine. Le mie domande sono queste:

1) Quando lo facciamo, Express memorizza automaticamente nella cache i file nella memoria del server o legge dal disco fisso ogni volta che una delle risorse viene servita?

2) Quando lo facciamo, Express, utilizzando ETag per impostazione predefinita, salva le risorse sul disco rigido del client o solo sulla memoria del client?

+1

1 Si noti che anche se espresso non lo fa (non sono sicuro), il sistema operativo potrebbe effettivamente fare. –

risposta

25
  1. Il middleware statico non esegue il caching sul lato server. Ti permette di fare due metodi di cache sul lato client: ETag e Max-Età:

Se il browser vede il ETag con la pagina, si memorizza nella cache di esso. La prossima volta che il browser carica la pagina controlla le modifiche al numero di ETag. Se il file è esattamente lo stesso, così come il suo ETag, il server risponde con un codice di stato HTTP 304 ("non modificato") invece di inviare nuovamente tutti i byte e salva un po 'di banda. Etag è attivata-on per impostazione predefinita, ma è possibile disattivarla in questo modo:

app.use(express.static(myStaticPath, { 
    etag: false 
})) 

Max-age è la volontà di impostare il max-age ad una certa quantità di tempo in modo che il browser solo richiedere tale risorsa dopo un giorno è passato.

app.use(express.static(myStaticPath, { 
    maxage: '2h' 
})) 

Per maggiori dettagli potete leggere questo article

  1. Di default è sul disco rigido, ma qualcuno può usare qualcosa come this
+0

Quindi prova a leggere dal disco fisso del server ogni volta ... Che ne dici del browser? Il browser ricorda ancora la risorsa quando il browser è stato chiuso? –

+0

Se la cache persiste. –

+0

Dan D. ... Presumo che stiate dicendo che le risorse sono effettivamente memorizzate nel disco rigido del client ... In quali condizioni la cache persiste e non persiste? –

Problemi correlati