私はサイトシードを最適化するためにFirefoxでGoogle Page Speedを使用しています。これは、私がVisual Studioの開発サーバーを使用して実行しているASP.NET MVCサイトです。/Contentフォルダ(画像、スクリプト、スタイル)に静的コンテンツがあります。 Google Page Speedは、静的コンテンツに有効期限が指定されていないキャッシングb/cを実装していることを示しています。私は、web.configファイルに次のように含まれるが、助けていないようです:ASP.NET MVCの静的コンテンツのキャッシュと圧縮
<system.webServer>
<staticContent>
<clientCache cacheControlMaxAge="7.00:00:00" cacheControlMode="UseMaxAge"/>
</staticContent>
</system.webServer>
言えば、私はまた、これらのファイルの圧縮を有効にしたいです。両方を行う方法を知りたいです。ありがとう。
public class CompressAttribute : ActionFilterAttribute
{
/// <summary>
/// Enables compression on page response
/// </summary>
/// <param name="filterContext">Filter context</param>
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpRequestBase request = filterContext.HttpContext.Request;
string acceptEncoding = request.Headers["Accept-Encoding"];
if (string.IsNullOrEmpty(acceptEncoding)) return;
acceptEncoding = acceptEncoding.ToUpperInvariant();
HttpResponseBase response = filterContext.HttpContext.Response;
if (acceptEncoding.Contains("DEFLATE"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new WebCompressionStream(response.Filter, CompressionType.Deflate);
}
else if (acceptEncoding.Contains("GZIP"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new WebCompressionStream(response.Filter, CompressionType.GZip);
}
}
}
WebCompressionStreamクラスは次のようになります:あなたはそれのための圧縮を有効にするときにのみ、[Compress]
とコントローラのメソッドを飾るために持っているように
圧縮の場合:http://stackoverflow.com/questions/6992524/how-do-i-enable-gzip-compression-when-using-mvc3-on-iis7 – Rory