为什么ASP.NET gzip压缩会损坏CSS?

时间:2020-03-05 18:42:03  来源:igfitidea点击:

我有一个正在使用的ASP.NET Webforms应用程序(3.5 SP1),并试图启用gzip fpr HTML和CSS。我正在使用此实现(并尝试了其他一些与Application_BeginRequest挂钩的方法),它似乎破坏了页面使用的外部CSS文件,但是间歇性地...所有样式突然在页面刷新时消失,保持一会儿,然后突然又开始工作。

IE7和FF3都表现出此行为。使用Web开发人员工具栏查看CSS时,它返回乱码。缓存控制标头以"私有"的形式出现,但我还不知道这是否是一个促成因素。

此外,它正在ASP.NET开发服务器上运行。也许对IIS来说还可以,但是我在XP上进行开发,那就是IIS5.

解决方案

回答

如果要在IIS 6或者IIS 7上进行部署,只需使用内置的IIS压缩。我们正在生产站点上使用它来正确压缩HTML,CSS和JavaScript。它还在服务器上缓存了压缩版本,因此压缩命中仅执行一次。

回答

仅仅是损坏的CSS文件吗? JS文件(或者任何其他静态文本文件)可以通过吗?

如果直接浏览到CSS文件,也可以复制行为吗?

我仅使用以下方法在Windows 2003服务器的IIS上启用了压缩:

  • IIS网站属性服务选项卡,选中两个框
  • IIS Web服务扩展右键单击,添加新
Name
      Http Compression 
  Required Files
      %systemroot%\system32\inetsrv\gzip.dll
  • IIS右键单击" Internet信息服务"的顶部节点,选中"启用直接元数据库",然后单击"编辑"。
  • aspx和任何其他可执行扩展名添加到HcScriptFileExtensions
  • 重新启动IIS(执行iisreset)

如果我们有Windows 2003/2008服务器,可以尝试使用该方法。