Configurando o favicon com o cabeçalho expira no htaccess

12

Eu implementei os cabeçalhos Expires via mod_expires no meu servidor Apache e criei com sucesso cabeçalhos expirados para a maioria dos tipos de arquivos, no entanto, estou tendo problemas com o favicon.

Inicialmente, tentei adicionar um conjunto de instruções para os arquivos .ico, mas ao verificar via YSlow, ele não tem um conjunto de expiração.

Quando isso não funcionou, eu a alterei para ser um GIF, no entanto, isso parece ter o mesmo problema.

Outros gifs no site definiram corretamente os cabeçalhos de validade (de acordo com o YSlow pelo menos).

Alguém pode lançar alguma luz sobre esta situação?

masegaloeh
fonte

Respostas:

19

Se você estiver usando o Apache, basta adicionar um tipo MIME para o favicon no arquivo .htaccess do seu site ou no arquivo mime.types do Apache:

# Add Proper MIME-Type for Favicon
AddType image/x-icon .ico

Em seguida, defina o cabeçalho Expira em alguns meses no futuro:

# Enable Apache's mod_expires Module
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"

Depois de limpar o cache do navegador e recarregar a página, você verá o arquivo favicon.ico sendo exibido com o cabeçalho Cache-Control configurado para uma data (especificada em segundos) no futuro:

Content-Type image/x-icon
Cache-Control: max-age=2592000

Para obter informações relacionadas, consulte a documentação do YSlow em Como tornar seu favicon.ico pequeno e armazenável em cache em: http://developer.yahoo.com/performance/rules.html#favicon

ryanjbonnell
fonte
+1 Isso absolutamente funciona. Certifique-se de limpar seu cache pelas pessoas, pensei que isso não funcionasse até limpar manualmente meu cache. Não sei por que uma atualização difícil não fez isso, mas tanto faz.
Sim Barry
0

Isso aqui funciona para mim:

# Cache the following content for 1 month (4 Weeks)
<FilesMatch "\.(jpg|jpeg|png|gif|ico)$">
Header set Cache-Control "max-age=2419200, public"
</FilesMatch>
BastianW
fonte