我已将 IIS 7.5 设置为压缩所有静态文件(默认),但它不会压缩 .js (javascript) 文件。当我打开压缩失败请求跟踪时,我收到的压缩错误是:
没有匹配的内容类型
我读过这篇文章,我看到的唯一解决方案是确保 application/x-javascript(而不仅仅是 application/javascript)被指定为被视为“静态”内容的 mimetype。因此,我调整了我的 applicationHost.config 以使其具有以下内容:
<httpCompression>
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" dynamicCompressionLevel="5" />
<scheme name="deflate" 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="application/x-javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
但是,我仍然在失败请求跟踪日志中看到相同的错误:NO_MATCHING_CONTENT_TYPE。还有其他想法吗?
答案1
确保您已将.js
文件映射到这些 MIME 类型之一(例如application/javascript'), and not something else entirely, e.g.
text/javascript`。(如果您只是作为客户端使用 curl 或 wget 之类的工具对其中一个文件发出 HTTP 请求,那么服务器将以哪种 MIME 类型返回它?)