Pergunta

Quando executo o YSlow no meu site, recebo um "F" no item "Configurar ETags";afirma que não há etags para muitas (todas?) das minhas imagens, folhas de estilo, etc.

No entanto, se eu executar o teste diretamente em uma dessas imagens, recebo um A no teste etag.Além disso, nos cabeçalhos de resposta do painel Firebug Net, posso ver o etag neste item para as versões de página inteira e de URL direto.

Há algo que eu possa estar fazendo para causar esse comportamento estranho?

(Os URLs que estou acessando são aqui e aqui se alguém quiser verificar por si mesmo.Eu não me importaria de fazer uma verificação de integridade para ver se é apenas meu navegador que está confuso.)

Foi útil?

Solução

apenas tentei isso localmente com FF 3.6 e YSlow 2.0.3 (versão recém-lançada) e a imagem autônoma dá uma pontuação "B", citando ETags mal configurados.

O ETag está aparecendo no cabeçalho, tanto no painel de rede do FireBug quanto no painel de componentes do YSlow.

Mas, isso ocorre intencionalmente.Se você olhar http://developer.yahoo.com/performance/rules.html#etags você verá que as ETags padrão geradas pelo IIS e Apache não são ideais.

Para referência, a regra lint real no YSlow verifica as duas expressões regulares a seguir:

  apache_re = new RegExp("^[0-9a-z]+-[0-9a-z]+-[0-9a-z]+$");
  iis_re = new RegExp("^[0-9a-z]+:[0-9a-z]+$");

Outras dicas

Minha resposta, em relação ao IIS 7, é ignorar a recomendação de Yslow.

O IIS 7 usa um número de alteração de metabase de zero ao gerar o ETAG. Essa é a parte depois do cólon ... então o ETAG sempre será como "5321116D3585CE1: 0", onde a primeira parte é gerada a partir do último tempo modificado do arquivo, e depois um cólon e o número da alteração da metabase.

Começando com o IIS 7, a Microsoft definiu esse número de alteração para zero o tempo todo, por isso será o mesmo, mesmo em vários servidores da Web. Para o IIS 5 e 6, você pode defini -lo como zero se quiser alcançar o mesmo resultado final:

http://technet.microsoft.com/en-us/library/ee619764(ws.10).aspx

Se Yslow ainda estiver usando uma regra de regex iis_re = novo regexp ("^[0-9a-z]+: [0-9a-z]+$"); Então eles estão errados e deve ser reescrito aceitar o ETAG como válido se terminar com :0

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top