私たちは、Visual Studio ASP .NETでのWeb APIからWebサイトのファイルを提供:ASP.NETのWeb APIとのHTTP圧縮を有効に
public class Startup
{
public void Configuration(IAppBuilder app)
{
var clientHostname = System.Configuration.ConfigurationManager.AppSettings["ClientHostname"];
var staticFileOptions = new StaticFileOptions()
{
OnPrepareResponse = staticFileResponseContext =>
{
staticFileResponseContext.OwinContext.Response.Headers.Add("Cache-Control", new[] { "public", "max-age=0" });
}
};
app.MapWhen(ctx => ctx.Request.Headers.Get("Host").Equals(clientHostname), app2 =>
{
app2.Use((context, next) =>
{
if (context.Request.Path.HasValue == false || context.Request.Path.ToString() == "/") // Serve index.html by default at root
{
context.Request.Path = new PathString("/Client/index.html");
}
else // Serve file
{
context.Request.Path = new PathString($"/Client{context.Request.Path}");
}
return next();
});
app2.UseStaticFiles(staticFileOptions);
});
}
}
私はHTTP圧縮を有効にしたいです。によるとthis MSDN documentation
ミドルウェアのパフォーマンスがおそらくサーバーモジュールのパフォーマンスと一致しないIIS、Apache、またはNginxでサーバーベースの応答圧縮テクノロジを使用します。使用レスポンスの圧縮ミドルウェアは、使用できません:
IIS動的圧縮モジュール
Apacheのmod_deflateをモジュール
nginxの圧縮と解凍
HTTP.sysはサーバー(以前はWebListenerと呼ばれていました)
Kestrel
だから、私はインスタンスでこれを行うには最初の好適な方法は、IIS動的圧縮モジュールであると思います。したがって、私はthis example次、テストとして、私のWeb.configファイルでこれを試してみました:
<configuration>
<system.webServer>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<dynamicTypes>
<add mimeType="*/*" enabled="true" />
</dynamicTypes>
<staticTypes>
<add mimeType="*/*" enabled="true" />
</staticTypes>
</httpCompression>
</system.webServer>
</configuration>
しかし、レスポンスヘッダにはContent-Encoding
が含まれていないので、私はそれが圧縮されているとは思いません。私は何が欠けていますか?可能な限り最良の方法で圧縮を提供するように設定するにはどうすればよいですか?
クライアントがAccept-Encoding
ヘッダーをgzip, deflate, br
に送信していることを確認しました。
更新
私はそれがデフォルトでインストールされていないとして、IISでの動的HTTP圧縮をインストールしてみました。私はコンテンツを静的に提供しようとしているようですが、これは試してみる価値があると思いました。静的コンテンツと動的コンテンツの両方の圧縮がIISマネージャーで有効になっていることを確認しました。しかし、私はそれを再実行しましたが、まだ圧縮はありません。私は圧縮を実現2
アップデートはまだありません私の地元のIISとの紺碧のサーバーに取り組んでいました。
すべてのタイプでワイルドカードの代わりに、設定で特定のMIMEタイプを試しましたか? – Jasen
@ジャセンはい、残念ながら、私は役に立たない。 –