Percebi que alguns navegadores (em particular, Firefox e Opera) são muito zelosos ao usar cópias em cache de arquivos .css e .js , mesmo entre as sessões do navegador. Isso causa um problema quando você atualiza um desses arquivos, mas o navegador do usuário continua usando a cópia em cache.
A questão é: qual é a maneira mais elegante de forçar o navegador do usuário a recarregar o arquivo quando ele foi alterado?
Idealmente, a solução não forçaria o navegador a recarregar o arquivo em todas as visitas à página. Vou postar minha própria solução como resposta, mas estou curioso para saber se alguém tem uma solução melhor e deixarei seus votos decidirem.
Atualização:
Depois de permitir a discussão aqui por um tempo, achei a sugestão de John Millikin e da5id útil. Acontece que existe um termo para isso: versão automática .
Publiquei uma nova resposta abaixo, que é uma combinação da minha solução original e da sugestão de John.
Outra idéia sugerida pelo SCdF seria anexar uma string de consulta falsa ao arquivo. (Algum código Python para usar automaticamente o registro de data e hora como uma string de consulta falsa foi enviado por pi .). No entanto, há alguma discussão sobre se o navegador armazenará ou não um arquivo em cache com uma string de consulta. (Lembre-se de que queremos que o navegador armazene em cache o arquivo e use-o em futuras visitas. Queremos que apenas busque o arquivo novamente quando ele tiver sido alterado.)
Como não está claro o que acontece com uma string de consulta falsa, não estou aceitando essa resposta.
iframe.contentWindow.location.reload(true)
. Veja o método (4) de stackoverflow.com/a/22429796/999120 - trata-se de imagens, mas o mesmo se aplica.
ExpiresActive On ExpiresDefault "modification"
.