共有ウェブホスト上のimで、iis7.5のweb.configファイルにのみアクセスできます。 javascriptファイルとcssファイルはgzipで圧縮されているので機能しますが、iis7.5では静的圧縮が有効になっているため、デフォルトで機能すると思います。ただし、フォントファイルを取得してgzipで圧縮することはできません。送信時のサイズは同じであり、応答ヘッダーにはcontent-encoding: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>
デフォルトでは、IISはこれらのMIMEタイプをhttpCompressionモジュールに含めません。次の場所にあるapplicationHost.configファイルを変更する必要があります:C:\ Windows\System32\inetsrv\config。
このファイルはすべてのWebサイトに影響するため、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>
これらは圧縮する私の個人的な設定です[〜#〜] svg [〜#〜]、[〜#〜] woff [〜#〜]、[ 〜#〜] eot [〜#〜]および[〜#〜] ttf [〜#〜]ファイル。
次に、コマンドラインにiisresetと入力して、IISで構成を再読み込みするか、コンピューターを再起動します。
[〜#〜] update [〜#〜]
WoffおよびWoff2ファイルはすでに圧縮されているため、これを行う必要はありません。実際、それらをgzipで圧縮すると、クライアントのパフォーマンスが低下します。
注意すべき重要なことは、次の設定からapplicationHost.config(%windir%\ system32\inetsrv\config内)を変更することです。
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
に:
<section name="httpCompression" overrideModeDefault="Allow" />
web.configのsystem.webServerタグの下にあるhttpCompressionタグの構成を有効にします。
問題は、デフォルトでIISは、圧縮可能なmimeタイプのリストにWebフォントのmimeタイプを含めないことです。Javascriptファイルとcssファイルが含まれているため、表示されます。それらは圧縮されます。
HttpCompression設定はおそらく使用されていません。これらはデフォルトでロックされており、web.configで設定することはできません。このページを見てください: http://support.Microsoft.com/kb/969062 。 [詳細情報]セクションには、「WebサーバーレベルでのみMIMEタイプを設定できます」と記載されています。
これをローカルサーバーで機能させる唯一の方法は、applicationHost.configのhttpCompressionセクションにmimeタイプを追加することでした(これには管理者アクセスが必要です)。 web.configでそれらを設定しても影響はありませんでした。
すべての環境でapplicationhosts.configにアクセスできない場合、より実用的なアプローチは、svgファイルをgzipするためのhttpmoduleを実装することです。
コード例については、この投稿を参照してください: http://laubplusco.net/gzip-svg-files-asp-net/
IISリモート管理コンソールを介して静的および動的圧縮を有効にしたにもかかわらず、この問題が発生していました。
IISで.tff
ファイルのmimeタイプをapplication/octet-stream
からfont/ttf
に変更することで、ようやく問題を解決できました。