Qual é a melhor maneira de gzipar e armazenar em cache imagens estáticas no Asp.net mvc
-
08-06-2019 - |
Pergunta
Estou tentando encontrar a melhor forma de agilizar a entrega das imagens estáticas que compõem o design de um site mvc.As imagens não são compactadas, nem armazenadas em cache no servidor ou no cliente (com conteúdo expirado).As opções são:
- Descubra por que as imagens não são armazenadas em cache e compactadas diretamente do IIS6
- Escreva um manipulador http especializado
- Registre uma rota especial para imagens estáticas e escreva um método binário de ação e resultado
Qual poderia ser a melhor solução em termos de desempenho?
Solução
A melhor solução é deixar o IIS fazer isso.
Compressão IIS6 - provavelmente você precisa especifique os tipos de arquivo a serem compactados como tipos .jpg, .png, .gif, etc.
O cache virá da garantia de que os cabeçalhos corretos estão sendo enviados ao cliente a partir do código, e acredito que há uma configuração que você pode definir no IIS que permite conteúdo estático, mas não tenho certeza disso.
Outras dicas
Certamente o ganho de compactar a maioria das imagens é insignificante, uma vez que elas já estão compactadas?
Talvez você tenha alguns arquivos PNG muito mal compactados ou algo assim?
Você pode conferir o site de conselhos de desempenho do Google, que inclui algumas dicas úteis sobre otimizando imagens incluindo links para utilitários como pngcrush.
é muito melhor usar um utilitário de otimização de imagem UMA VEZ do que confiar no IIS para compactá-las (possivelmente de forma ineficiente) em tempo real.
Há uma ótima biblioteca na Galeria de Códigos do MSDN que faz isso.É chamado FastMVC.