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

时间:2008-08-22 14:33:01

标签: asp.net compression gzip

我正在使用一个ASP.NET webforms应用程序(3.5 SP1),并尝试启用管道中的gzip fpr HTML和CSS。我正在使用this implementation(并尝试了一些挂钩到Application_BeginRequest的其他人),它似乎破坏了页面使用的外部CSS文件,但间歇性地......突然所有样式都会在页面刷新时消失,保持这种状态一段时间,然后突然重新开始工作。

IE7和FF3都表现出这种行为。使用Web开发人员工具栏查看CSS时,它返回乱码。缓存控制标题是“私有”,但我不知道是否是一个影响因素。

此外,它在ASP.NET Development Server上运行。也许它适用于IIS,但我正在开发XP,它是IIS5。

2 个答案:

答案 0 :(得分:5)

只有CSS文件被破坏了吗? JS文件(或任何其他静态文本文件)是否可以通过?

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

我只使用这种方法在Windows 2003服务器的IIS上启用压缩:

  1. IIS→网站→属性→服务选项卡,选中两个方框
  2. IIS→Web服务扩展→右键单击,添加新
      Name
          Http Compression 
      Required Files
          %systemroot%\system32\inetsrv\gzip.dll 
  3. IIS→右键单击顶级节点,Internet信息服务,选中启用直接元数据库编辑
  4. 备份和修改%systemroot%\system32\inetsrv\MetaBase.xml
    1. 查找Location ="/LM/W3SVC/Filters/Compression/gzip"
      • pngcssjs和任何其他静态文件扩展名添加到HcFileExtensions
      • aspx和任何其他可执行扩展程序添加到HcScriptFileExtensions
      • 保存
  5. 重新启动IIS(运行iisreset
  6. 如果你有一台Windows 2003/2008服务器可以尝试这种方法。

答案 1 :(得分:0)

如果要在IIS 6或IIS 7上进行部署,只需使用内置的IIS压缩。我们在生产网站上使用它来压缩HTML,CSS和JavaScript,没有任何错误。它还将压缩版本缓存在服务器上,因此压缩命中只需要一次。