YSlow dando risultati inconsistenti su ETags
Domanda
Quando eseguo YSlow contro il mio sito, ho una "F" sulla voce "Configura ETags"; si sostiene che non ci sono etags per molti (tutti?) di mio immagini, fogli di stile, ecc.
Tuttavia, se eseguire il test su una di quelle immagini direttamente, ottengo un A sul test ETAG. Inoltre, sulle intestazioni di risposta del pannello di Firebug Net posso vedere l'etag su questo punto per entrambe le versioni a tutta pagina e-URL diretto.
C'è qualcosa che mi potrebbe fare per causare questo strano comportamento?
(Gli URL sto colpendo sono qui e qui se qualcuno vuole verificare la presenza di se stessi. non mi dispiacerebbe un controllo di integrità per vedere se è solo il mio browser che è confuso.)
Soluzione
appena provato questo a livello locale con 3,6 FF e YSlow 2.0.3 (versione appena rilasciata) e l'immagine standalone dà un punteggio di "B", citando ETags mal configurati.
L'ETag mostra nell'intestazione, bith nel pannello rete FireBug e nel pannello componenti YSlow.
Ma, questo è in base alla progettazione. Se si guarda a http://developer.yahoo.com/performance/rules.html# etags si vedrà che le eTags predefiniti generati da IIS e Apache non sono ottimali.
Per riferimento, la regola lint effettiva YSlow controlla i seguenti due regex:
apache_re = new RegExp("^[0-9a-z]+-[0-9a-z]+-[0-9a-z]+$");
iis_re = new RegExp("^[0-9a-z]+:[0-9a-z]+$");
Altri suggerimenti
La mia risposta, per quanto riguarda IIS 7, è quello di ignorare la raccomandazione di YSlow.
IIS 7 utilizza un numero di cambiamento metabase zero quando si genera l'ETag. Questa è la parte dopo i due punti ... in modo che l'ETAG sarà sempre qualcosa come "5321116d3585ce1: 0"., In cui la prima parte è generato dall'ultima volta file modificato, e poi due punti e il numero di modifica della metabase
A partire con IIS 7, Microsoft ha quel numero il cambiamento a zero per tutto il tempo, così sarà lo stesso anche su più server web. Per IIS 5 e 6, è possibile impostare a zero se si vuole raggiungere lo stesso risultato finale:
http://technet.microsoft.com/en -us / library / ee619764 (WS.10) aspx
Se YSlow è ancora utilizzando una regola regex di iis_re = new RegExp ( "^ [0-9a-z] + [0-9a-z] + $"); , quindi si' re sbagliato, e dovrebbe essere riscritto per accettare l'ETAG come valido se finisce con 0