如果任何人都可以帮助,将不胜感激。 我想在IIS7中启用静态文件的压缩(为了简单起见,我将暂时引用静态css文件)。
我得到的问题是,只有当在网站的IIS中启用dynamic和静态压缩时,css文件才被压缩。 我真正想要达到的是css压缩(静态文件),同时将dynamic(aspx)页面保持为未压缩状态(以避免不必要的CPU负载)。
我很困惑,为什么只是离开“静态压缩”启用导致css文件被解压缩返回。
我applicationHost.config文件没有被改变,看起来像这样:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> <staticTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/x-javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes> </httpCompression>
IIS中的服务器范围压缩设置被设置为“dynamic禁用”和“静态启用”从服务器>function>压缩页面。
如上所述,网站压缩设置(服务器>站点> MyWebsite>function>压缩)是我启用和禁用dynamic压缩的地方。
任何帮助将真正帮助我取消这个。
谢谢
很有可能你的CSS文件是由dynamic内容处理程序提供的,这意味着它被IIS视为dynamic内容。 如果.CSS文件直接映射到StaticFileHandler,那么只要mimetypes正确,它们可能会与其他静态内容一起压缩。
要弄清楚是否是这样的情况:
打开该站点的“失败的请求跟踪”,并启用跟踪200个响应的规则。
打开与.CSS请求相对应的失败的请求日志文件,并检查是否正在调用哪个处理程序来生成文件,以及压缩是否被认为是必需的。 通配符脚本映射通常是这种行为的原因。
如果您在频繁的时间周期(frequencyHitTimePeriod)中的频率不高于频率上限(frequencyHitThreshold)请求(通常在10秒内为2秒,如果内存服务),内容可能不会被压缩,直到突破该阈值为止 – 相同的阈值用于压缩作为caching。
在IIS 6.0中,禁用.css文件和dynamic压缩的.aspx页面将压缩.css文件(如果启用了“静态压缩”)。 在IIS 7 / 7.5中,使用.css文件的.aspx页面不会压缩.css文件,尽pipe我们启用了静态压缩。 要从第一个请求压缩.css文件,您需要在IIS 7 / 7.5中启用dynamic内容压缩。
请参阅文章变更到IIS7中的压缩以更好地理解这种行为
你也可以检查一下我的文章 。