【问题标题】:gzip compression & iis express/iis?gzip 压缩 & iis express/iis?
【发布时间】:2023-10-25 10:45:01
【问题描述】:

有谁知道为什么以下 web.conig 更改不起作用:

<httpCompression>
  <staticTypes>
    <add mimeType="application/javascript" enabled="true"/>
  </staticTypes>
<dynamicTypes>
  <add mimeType="application/javascript" enabled="true"/>
</dynamicTypes>
</httpCompression>

在我添加 javascript 文件后仍未压缩 (gzip)。我纠结了几天,因为一开始我真的不知道问题是什么,但现在我知道了。如果我直接更改 applicationhost.config 确实有效

  <httpCompression directory="%TEMP%\iisexpress\IIS Temporary Compressed Files">
        <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
        <dynamicTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="application/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="application/javascript" enabled="true" />
            <add mimeType="application/atom+xml" enabled="true" />
            <add mimeType="application/xaml+xml" enabled="true" />
            <add mimeType="*/*" enabled="false" />
        </staticTypes>
    </httpCompression>

更改您的 web.config 会容易得多,然后尝试找出哪些 web 服务器 applicationhost.config 文件不正确,但不幸的是它不起作用

也就是说 IIS Express 默认设置为“不正确”。它为 javascript 文件提供了“application/javascript”的 mimetype,但只压缩了“application/x-javascript”的 javascript 文件。我不知道 IIS(不是 express)是否会以这种方式默认。

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于 Web 服务器配置而不是编程。 webmasters.stackexchange.com 可能是一个更好的提问地点。

标签: iis iis-express http-compression


【解决方案1】:

您可以尝试将值为 true 的 doDynamicCompression 属性添加到 urlCompression 属性。

<urlCompression doDynamicCompression="true" />

【讨论】: