Se mod_expires for usado em .htaccess, os arquivos modificados serão baixados pelo cliente

Se mod_expires for usado em .htaccess, os arquivos modificados serão baixados pelo cliente

Estou tentando empregar o cache para acelerar o tempo de resposta de um site. A maior parte da documentação que li sugere definir a expiração para +1 mês a partir do momento do acesso, da seguinte forma:

ExpiresActive On
ExpiresByType text/css "access plus 1 month"

Estou preocupado que, se eu atualizar um arquivo css, o cliente não obtenha o arquivo atualizado.

É possível garantir que o cliente baixe uma nova versão de um arquivo se ele for modificado?

Qualquer ajuda muito apreciada

Responder1

Sua preocupação está correta - os clientes cujos navegadores recuperaram o arquivo normalmente não receberão a versão atualizada até 1 mês após acessá-la, a menos que tenham limpo o cache do navegador ou recarreguem a página.

Uma maneira de contornar isso é quando você atualiza o arquivo CSS, altera o HTML que faz referência a ele para ter ?v=2 ou ?v=3 etc. no final do atributo href da tag do link (ou seja, após o .css). Os navegadores veem isso como um URL exclusivo e, portanto, baixam a nova cópia, mas apontam para o mesmo arquivo .css físico em seu servidor.

<link rel="stylesheet" type="text/css" href="/styles.css" />

torna-se

<link rel="stylesheet" type="text/css" href="/styles.css?v=2" />

informação relacionada