Estou tentando fazer algo que achei bastante simples. Obtenha o IIS 7 para informar aos clientes que eles podem armazenar em cache todas as imagens do meu site por um determinado período, digamos 24 horas.
Tentei a etapa em http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx, mas sem sucesso. Ainda recebo solicitações indo para o servidor com 304s sendo retornados.
Alguém tem uma maneira de fazer isso? Tenho um site graficamente intensivo e meus usuários estão sendo martelados (assim como meu servidor) toda vez que solicitam uma página. Estranhamente, as imagens parecem ter "Cache-Control private, max-age = 3600" aparecendo no Firebug, mas o navegador ainda está solicitando quando eu pressiono F5.
Cache-Control
(max-age
) para tipos MIME ou extensões de arquivos diferentes?Isso não é verdade Jeff.
Basta selecionar uma pasta na IU do IIS 7 Manager (por exemplo, Imagens ou pasta do aplicativo da Web padrão) e clicar em "Cabeçalhos de resposta HTTP". Então você tem que clicar em "Set Common Header .." no painel direito e selecionar "Expire Web content". Lá você pode configurar facilmente uma idade máxima de 24 horas escolhendo "Depois:", inserindo "24" na caixa de texto e escolhendo "Horas" na caixa de combinação.
Seu primeiro parágrafo a respeito da entrada web.config está correto. Eu adicionaria o atributo cacheControlCustom para definir o cabeçalho de controle do cache como "público" ou o que for necessário nesse caso.
Você pode, é claro, conseguir o mesmo fornecendo entradas (ou arquivos) web.config conforme necessário.
Editar: removeu uma frase confusa :)
fonte
Cache-Control
(max-age
) para tipos MIME ou extensões de arquivo diferentes?Eu uso isso
para armazenar em cache conteúdo estático por 500 dias com cabeçalho de controle de cache público.
fonte
O F5 Refresh tem a semântica de "recarregue o HTML atual E suas dependências diretas". Portanto, você deve esperar ver qualquer recurso imgs, css e js diretamente referenciado pelo HTML também sendo buscado novamente. É claro que 304 é uma resposta aceitável para isso, mas a atualização F5 implica que o navegador fará a solicitação em vez de depender de conteúdo de cache atualizado.
Em vez disso, tente simplesmente navegar para outro lugar e, em seguida, navegue de volta.
Você pode forçar a atualização, além de 304, segurando ctrl enquanto pressiona f5 na maioria dos navegadores.
fonte
Para armazenar conteúdo estático em cache por 365 dias com cabeçalho de controle de cache público , o IIS pode ser configurado com o seguinte
Isso se traduzirá em um cabeçalho como este:
Observe que max-age é um delta em segundos, sendo expresso por um número inteiro positivo de 32 bits, conforme declarado nas Seções 14.9.3 e 14.9.4 do RFC 2616 . Isso representa um valor máximo de 2 ^ 31 ou 2.147.483.648 segundos (mais de 68 anos). Porém, para melhor garantir a compatibilidade entre clientes e servidores, adotamos o máximo recomendado de 365 dias (um ano).
Conforme mencionado em outras respostas, você pode usar essas diretivas também no web.config do seu site para todo o conteúdo estático. Como alternativa, você pode usá-lo apenas para conteúdos em um local específico também (na amostra, 30 dias de cache público para conteúdos na pasta "cdn"):
fonte
há uma maneira fácil: 1. usando o web.config do site 2. na seção "staticContent" remova o fileExtension específico e adicione mimeMap 3. adicione "clientCache"
fonte