Mas*_*asu 21 gzip font-face mime-types
我在共享的webhost上,我只能访问iis7.5的web.config文件.javascript文件和css文件是gzip压缩的,所以这样可行,但我认为默认情况下可以正常工作,因为在iis7.5中启用了静态压缩.但是,我无法获取字体文件进行gzip压缩,它们在发送时大小相同,并且响应头文件没有内容编码:gzip.感谢您的任何帮助.
这是web.config文件:
<configuration>
<system.webServer>
<directoryBrowse enabled="false" />
<staticContent>
<mimeMap fileExtension=".otf" mimeType="font/opentype" />
</staticContent>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="font/open-type" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="text/css" enabled="true" />
<add mimeType="text/html" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="font/opentype" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<urlCompression dynamicCompressionBeforeCache="true" doDynamicCompression="true" doStaticCompression="true" />
<defaultDocument>
<files>
<clear />
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="index.html" />
<add value="iisstart.htm" />
<add value="default.aspx" />
<add value="index.php" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
Dom*_*dre 44
默认情况下,IIS不包含httpCompression模块中的那些MIME类型.您需要在以下位置修改applicationHost.config文件:C:\ Windows\System32\inetsrv\config.
此文件将影响您的所有网站,必须使用64位Windows中的64位文本编辑器打开.(Notepad2 64位,记事本,不要使用Notepad ++)
<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/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
<!-- HERE -->
<add mimeType="image/svg+xml" enabled="true" />
<add mimeType="application/font-woff" enabled="true" />
<add mimeType="application/x-font-ttf" enabled="true" />
<add mimeType="application/octet-stream" enabled="true" />
<!-- HERE -->
</staticTypes>
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
<!-- HERE -->
<add mimeType="image/svg+xml" enabled="true" />
<add mimeType="application/font-woff" enabled="true" />
<add mimeType="application/x-font-ttf" enabled="true" />
<add mimeType="application/octet-stream" enabled="true" />
<!-- HERE -->
</dynamicTypes>
</httpCompression>
Run Code Online (Sandbox Code Playgroud)
这些是我压缩SVG,WOFF,EOT和TTF文件的个人设置.
然后只需在命令行中键入iisreset即可在IIS中重新加载配置,或重新启动计算机.
UPDATE
WOFF和Woff2文件已经被压缩,所以你不需要这么做.事实上,如果你对它们进行gzip,客户端将失去性能.
小智 7
需要注意的重要一点是从以下设置修改applicationHost.config(在%windir%\ system32\inetsrv\config中):
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
Run Code Online (Sandbox Code Playgroud)
至:
<section name="httpCompression" overrideModeDefault="Allow" />
Run Code Online (Sandbox Code Playgroud)
将在web.config中的system.webServer标记下启用httpCompression标记的配置.
小智 5
问题是默认情况下IIS不包含可压缩的mime类型列表中的Web字体的mime类型.包含Javascript和css文件,这就是您看到它们被压缩的原因.
您的httpCompression设置可能未被使用,默认情况下已锁定,无法在web.config中设置.请查看此页面:http://support.microsoft.com/kb/969062.在"更多信息"部分中,它说"您只能为Web服务器级别设置MIME类型".
我可以在本地服务器上运行的唯一方法是在applicationHost.config的httpCompression部分添加mime类型(这需要管理员访问权限).在web.config中设置它们没有任何影响.