Por que a compactação gzip do ASP.NET está corrompendo o CSS?
-
09-06-2019 - |
Pergunta
Eu tenho um aplicativo de webforms ASP.NET (3.5 SP1) no qual estou trabalhando e tentando ativar o gzip fpr HTML e CSS que vem pelo caminho.estou a usar esta implementação (e tentei alguns outros que se conectam a Application_BeginRequest), e parece estar corrompendo o arquivo CSS externo que as páginas usam, mas de forma intermitente... de repente, todos os estilos desaparecerão em uma atualização de página, permanecerão assim por um tempo e então de repente começar a trabalhar novamente.
Tanto o IE7 quanto o FF3 exibem esse comportamento.Ao visualizar o CSS usando a barra de ferramentas do desenvolvedor web, ele retorna um jargão.O cabeçalho de controle de cache está sendo considerado "privado", mas não sei o suficiente para descobrir se isso é um fator contribuinte ou não.
Além disso, isso está sendo executado no servidor de desenvolvimento ASP.NET.Talvez tudo bem com o IIS, mas estou desenvolvendo no XP e seria o IIS5.
Solução
São apenas os arquivos CSS que são corrompidos?Os arquivos JS (ou qualquer outro arquivo de texto estático) funcionam bem?
Você também pode duplicar o comportamento se navegar diretamente para o arquivo CSS?
Ativei apenas a compactação no IIS do servidor Windows 2003 usando esta abordagem:
- IIS → Sites → Propriedades → guia Serviço, marque ambas as caixas
- IIS → Extensões de serviço da Web → Clique com o botão direito, Adicionar novo
Name Http Compression Required Files %systemroot%\system32\inetsrv\gzip.dll
- IIS → Clique com o botão direito no nó superior, Serviços de Informações da Internet, marque Habilitar edição direta da metabase
- Backup e edição
%systemroot%\system32\inetsrv\MetaBase.xml
- Encontrar
Location ="/LM/W3SVC/Filters/Compression/gzip"
- Adicionar
png
,css
,js
e quaisquer outras extensões de arquivo estático paraHcFileExtensions
- Adicionar
aspx
e quaisquer outras extensões executáveis paraHcScriptFileExtensions
- Salvar
- Adicionar
- Encontrar
- Reinicie o IIS (execute
iisreset
)
Se você tiver um servidor Windows 2003/2008 para brincar, você pode tentar essa abordagem.
Outras dicas
Se você for implantar no IIS 6 ou IIS 7, basta usar a compactação integrada do IIS.Estamos usando-o em sites de produção para compactar HTML, CSS e JavaScript sem erros.Ele também armazena em cache a versão compactada no servidor, de forma que o acerto de compactação seja obtido apenas uma vez.