当我们尝试从 IIS 服务器请求单个 CSS 文件时,这一点得到了最好的证明。有时我们会得到整个未压缩的文件。我们会等待 5 秒钟并刷新,然后 CSS 文件会被 gzip 压缩,大小为原始大小的 1/5(这正是我们想要的)... 但是如果我们再等一分钟,它就会恢复到原始的未压缩版本。
有什么想法可能导致这种情况或如何解决它?
答案1
查看 oftenHitThreshold 和 oftenHitTimePeriod。缓存模块在确定内容的可压缩性时会使用它们。
答案2
仅当压缩的文件大于服务器定义的最小文件大小并且应用程序池有足够的可用磁盘空间(也是服务器定义的设置)时,才会发生静态压缩。此 TechNet 文章进一步解释:
http://technet.microsoft.com/en-us/library/cc730629%28WS.10%29.aspx
就您而言,您的应用程序池可能已经用完了缓存目录中压缩文件的可用磁盘空间。
还有一种可能是,如果您的服务器 CPU 使用率很高,则压缩可能已被暂时禁用(使用 staticCompressionEnableCpuUsage 和 staticCompressionDisableCpuUsage 设置)。以下是额外的参考:
http://www.iis.net/ConfigReference/system.webServer/httpCompression