Boa noite, pessoal
Estou com um problema que todo deploy que faço do meu projeto no servidor apache os arquivos não são atualizados no browser do cliente (CSS e JS). Existe alguma forma de forçar essa atualização, já tentei varias coisas e ate momento sem sucesso.
Abs
Vc precisa ver os cabeçalhos HTTP para ver quanto tempo de cache esses arquivos tem.
Em geral se coloca algum tempo pois não é preciso carregar o mesmo css ou js a cada request.
Se este é o problema, tem algumas soluções:
-
verifique se o Apache realmente entendeu que existe um novo css ou js. abra uma aba “privada nova, sem cookies ou cache” e tente acessar o recurso.
-
renomeie os seus estaticos a cada novo deploy, assim vc garante que o usuario vai ver sempre a ultima versão. pode ser algo simples como
meucss.data_de_hoje_ou_versao.css
meujavascript.data_de_hoje_ou_versao.js
e salvo engano existem formas automatizadas de fazer isso.
- veja se o apache retorna uma ETAG e se o browser esta verificando o cache com IF-None-Match ( ao inves de IF-Modify-Since ). O ETAG é um hash que vc gera a partir do arquivo e arquivos diferentes geram hashes diferentes ( ex md5 ). O browser vai cachear o css com etag X e nas proximas vezes vai perguntar “oi o hash do css ainda é X ?”. uma boa combinação de cache por tempo + etag precisa ser bem pensada.
aqui tem um excelente material:
Obrigado pela ajuda esse artigo me ajudou muito.
Abs