2011-04-01 80 views
4

我试图配置IIS 7.5来压缩静态htm和js文件。有谁知道为什么它不适合我?这是我的网站web.config:IIS中的静态压缩不适用于htm,js文件

<httpCompression>   
     <dynamicTypes> 
      <add mimeType="text/*" enabled="true" /> 
      <add mimeType="message/*" enabled="true" /> 
      <add mimeType="application/x-javascript" enabled="true" /> 
      <add mimeType="*/*" enabled="false" /> 
     </dynamicTypes> 
     <staticTypes> 
      <add mimeType="text/*" enabled="true" /> 
      <add mimeType="message/*" enabled="true" /> 
      <add mimeType="application/x-javascript" enabled="true" /> 
      <add mimeType="*/*" enabled="false" /> 
     </staticTypes> 
    </httpCompression> 
    <urlCompression doStaticCompression="true" doDynamicCompression="false" /> 

当我将doDynamicCompression设置为true时,压缩开始工作。但是我不能使用这个选项,因为它在我的主机上被禁用。

谢谢。

+0

我发现相同的问题。如果静态压缩处于打开状态,它看起来像是带有压缩的CSS文件。但我需要js的动态压缩。如果我这样做,它也会.aspx。此外,httpCompression方案似乎没有效果。 – JNappi 2011-07-06 20:02:57

回答

3

是什么让你觉得压缩不起作用?检查事件查看日志。静态压缩模块有时会抛出一个错误,指出正在使用的目录是无效的(主要是因为它需要写入权限)。

使用Fiddler或其他HTTP调试工具进行仔细检查,以确保客户端正在发送GZIP/Deflate的“Accept-Encoding”。

+0

感谢您的提示。是的,这就是我如何检测压缩是否正在工作 - 查看响应http头。它仅在doDynamicCompression =“true”时才发送Content-Encoding:gzip。事件日志中没有任何内容,我甚至试图给予“C:\ inetpub \ temp \ IIS Temporary Compressed Files”文件夹的所有权限 - 没有任何帮助。 – Evgenii 2011-04-03 07:56:49

1

我从dynamicTypes中移除了mimeType =“application/x-javascript”,但将其留在了staticTypes中。这使我可以关闭dynamicCompression,但仍然有JavaScript压缩。

我读过一些文章,建议当动态和静态都有相同的mimeType时,动态值会胜出。当dynamicCompression关闭时,但在dynamicTypes中存在匹配时,javascript被视为动态,因此关闭。

这并不能解释为什么CSS工作,因为mimeType =“text/”在两个地方。在涉及CSS或任何文本/时,IIS必须更好地确定动态与静态内容。