Como posso forçar navegadores a procurar por uma nova versão apesar de uma diretiva de cache max-age 30 dias?

1

Eu tinha a seguinte declaração na raiz do meu site:

<staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent>

Acho que isso indica aos navegadores que não procurem novas versões de nenhum arquivo, a menos que tenham mais de 30 dias - correto?

Esta não foi minha intenção e desde então modifiquei a instrução, mas enquanto alguns navegadores estão sendo atualizados apesar da antiga instrução, alguns não são. Existe uma maneira de forçar os navegadores a procurar uma nova versão com efeito imediato?

Obrigado.

    
por user20856 21.08.2013 / 09:53

1 resposta

2

Se o navegador não fizer uma solicitação para o arquivo (até que ele expire), você não terá uma nova diretiva de armazenamento em cache.

No entanto, noto que o bit staticContent. Se isso for aplicado apenas ao conteúdo estático, e não às suas páginas html que são (provavelmente) dinâmicas, você poderá alterar os URLs mencionados no html. Isso pode ou não ser fácil de organizar, dependendo de como você gera seu conteúdo, mas é uma estratégia muito sensata em geral.

Por exemplo, você pode ter o caminho do arquivo css (ou similarmente qualquer outro conteúdo estático que você se referir), além de um registro de data e hora para a última alteração, concatenar essas cadeias e fazer um hash md5 delas. em seguida, use um URL como link {your_md5sum} .css no seu html e faça uma cópia ou link simbólico do conteúdo css pronto para ser exibido nesse caminho. Você pode, então, sempre servir seus links de CSS com tempos de expiração de vários anos, mas pare de usar versões antigas sempre que quiser. Também é bom se você quiser manter versões antigas disponíveis, porque, por exemplo, elas funcionam com versões antigas de páginas que as pessoas podem ter copiado em outros lugares da web, ou e-mails antigos ou qualquer outra coisa. p>

Um mecanismo um pouco mais simples pode ser simplesmente adicionar um registro de data e hora a seus caminhos, como o link , com o timestamp retirado do horário de modificação do arquivo no seu servidor local.

    
por 21.08.2013 / 10:48

Tags