PageSpeed谷歌启用压缩经常变化

时间:2015-05-21 13:57:01

标签: asp.net compression pagespeed

我正在使用ASP.NET webforms,我把这段代码放在我的web.config中:

<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="application/javascript" enabled="true"/>
  <add mimeType="application/x-javascript" enabled="true"/>
  <add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<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>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>

有时Chrome上的Google Page Speed Insights和PageSpeed扩展程序并未说明有关启用压缩的相同信息。有时大约有10个文件,因此它非常重要,有时它只有4个文件,所以中等重要性...有时移动版本显示10个文件,而计算机版本显示4.它似乎是随机的。例如。我在11:00分析它在11:30不一样,在13:00不一样......每次都可以改变数据或代码变化。

有人可以解释这个奇怪的事吗?

顺便说一句,我不知道为什么在剩下的4个文件中,仍有一个css文件和一个js文件没有&#34;启用&#34;因为其他css和js文件不在列表中。

我还想从某些页面上的4个剩余文件中删除WebResource.axd?d = ...&amp; t = ...这就是我添加mimeType x-javascript的原因。但它似乎不起作用。

感谢。

1 个答案:

答案 0 :(得分:1)

这里你应该做什么: 1.在IIS7 enable compression中启用动态压缩 2.使用以下代码启用页面压缩:

public static bool IsGZipSupported()
{
  string AcceptEncoding = HttpContext.Current.Request.Headers[«Accept-Encoding»];
  if (!string.IsNullOrEmpty(AcceptEncoding) &&
     (AcceptEncoding.Contains(«gzip») || AcceptEncoding.Contains(«deflate»)))
    return true;
  return false;
}

public static void GZipEncodePage()
{
  if (IsGZipSupported())
  {
    HttpResponse Response = HttpContext.Current.Response;

    string AcceptEncoding = HttpContext.Current.Request.Headers[«Accept-Encoding»];
    if (AcceptEncoding.Contains(«gzip»))
    {
      Response.Filter = new System.IO.Compression.GZipStream(Response.Filter,
                   System.IO.Compression.CompressionMode.Compress);
      Response.AppendHeader(«Content-Encoding», «gzip»);
    }
    else
    {
      Response.Filter = new System.IO.Compression.DeflateStream(Response.Filter,
                   System.IO.Compression.CompressionMode.Compress);
      Response.AppendHeader(«Content-Encoding», «deflate»);
    }
  }
}

protected void Page_Load(object sender, EventArgs e)
{
HtmlUtil.GZipEncodePage();
}
  1. 启用静态内容enable static content