O que ‘?’ fazer em um link Css?

Eu estava navegando no html do meu site favorito … ahem … e eu vi isso na marcação:

 

o que “d = 20090107” faz? Eu estou supondo que seja uma data de algum tipo, mas não tenho certeza porque está no caminho para o arquivo. Alguma ideia?

Isso está lá para adicionar alguma exclusividade ao nome do arquivo, para que quando eles mudarem o arquivo CSS, eles possam alterar o bit extra para ter certeza absoluta de que cada cliente recarregará o CSS em vez de usar uma versão em cache.

O servidor web irá ignorar o parâmetro e servir /Content/all.min.css normalmente

Nota: Embora seja possível que o CSS seja gerado dinamicamente, este é um idioma comum para garantir um recarregamento, e dado que o parâmetro é uma data, parece bastante provável.


Edit: Podcast 38 mencionou isso …

Estamos usando o Expires ou Cache-Control Header desde o lançamento. Isso economiza as viagens de ida e volta do navegador ao receber itens que não são frequentemente alterados, como imagens, javascript ou css. A desvantagem é que, quando você realmente altera esses arquivos, você deve se lembrar de alterar os nomes dos arquivos. Uma parte do nosso processo de criação agora “marca” esses arquivos com um número de versão, de modo que não precisamos mais nos lembrar de fazer isso manualmente.

É “limpar o cache” toda vez que o estilo é atualizado. Eu especularia que quem é responsável por esses estilos incrementa cada vez que há uma mudança. É porque o navegador vê um URL diferente no campo de estilo, por isso vai pegar a versão mais recente, mesmo que seja tecnicamente no mesmo lugar no servidor.

Como foi solícito nos comentários, os arquivos css geralmente têm seu prazo de validade definido no futuro, esse método é um bom desvio para armazenar em cache os headers relacionados.

Muito um truque útil.

É fazer com que o navegador pense que é um novo arquivo todo o tempo para atualizar seu cache.

Muito útil quando suas folhas de estilo mudam regularmente …