Que estratégia devo usar para o Apache HTTP Server para que os arquivos recém-implantados tenham seu cache invalidado?

2

Uma solução muito comum é fazer o seguinte:

<ifModule mod_headers.c>
    FileETag None
    Header unset ETag
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires "Thu, 01 Jan 1970 00:00:01 GMT"
</ifModule>

Eu quero que eles sejam armazenados em cache, mas também quero que eles sejam invalidados quando nos reimplantarmos. Eu estou pensando que eu preciso reativar o ETag e, em seguida, quando nós re-upload de arquivos "tocá-los" para que os timestamps todos lerão a hora atual e eles vão ter um ETag diferente.

De alguma forma, estou lendo o que estou lendo nesta resposta:

link

Isso parece correto?

    
por Community 13.12.2013 / 18:14

1 resposta

3

Etag é uma boa ideia, mas seu cabeçalho expira a impede. Por que não apenas definir seu cabeçalho de expiração para um valor sã? Muitas pessoas definem o prazo para datas loucas, que para um cliente configurado corretamente fará com que o cliente nem envie uma solicitação ao servidor.

Primeiro, defina sua expiração para algo sensato como request date + 1 week (qualquer que seja seu ciclo de lançamento esperado). Em seguida, os clientes que seguirem corretamente as especificações para os cabeçalhos de expiração verificarão novamente após esse período de tempo. É muito mais simples e confiável do que tentar armazenar em cache tudo o que é implantado.

EDIT: Eu assumi que o exemplo que você deu foi sua configuração. Eu não quero dizer que soa duro, mas eu vejo pessoas fazendo coisas bobas com o cache o tempo todo.

    
por 13.12.2013 / 18:23