2013-02-01 15 views

risposta

16

ottengo 200 risposte in questo modo durante lo sviluppo:

var express = require('express'); 
app = express(); 
app.use(function(req, res, next) { 
    req.headers['if-none-match'] = 'no-match-for-this'; 
    next();  
}); 
+0

Quali sono le ripercussioni per l'utilizzo di questo in un ambiente di produzione? Lo sto usando per lo sviluppo, ma temo che se lo rimuoverò, i miei utenti avranno lo stesso problema. – Hawkee

+0

Questo è perfetto per lo sviluppo. Credo che se si desidera un comportamento dinamico nella produzione, è necessario servire i file di conseguenza creando una rotta separata. I progetti del mondo reale avrebbero bisogno sia del 304 che del lavoro per risorse veramente statiche e un modo per consentire il caricamento dinamico. – Andrei

+0

Grazie. Questo ha funzionato per me. – unicornherder

2

Questa soluzione è solo una soluzione temporanea. È possibile risolvere il problema dal lato del browser da disabling caching in Chrome. Questo non ti aiuta se devi lavorare su qualcosa al di fuori di Chrome, come Safari su iOS.

+0

Non vedo risposta perché questo è accettato come consumatori di servizio non sono solo i browser ma possono essere altri servizi o software di terze parti –

6

legge dal file system su ogni risposta. è solo che se la richiesta ETAG corrisponde alla risposta ETAG, non invia il corpo della risposta perché non è necessario. È lo stesso file con lo stesso hash. questo è il modo in cui funzionano le 304 risposte.

perché si desidera prevenire 304 risposte?

+4

Mi ha confuso il motivo per cui Express restituirebbe 304s. Grazie! –

+3

Perché gli etags deboli memorizzano nella cache i file JS che possono essere un problema per gli sviluppatori frontend. –

6
app.disable('etag'); 

prevenzione 'ETAG' in risposta può aiutare

+1

Non influenza il middleware statico nel ramo 4.0 ... –

+0

Dove lo aggiungiamo? – SharpCoder

Problemi correlati