9

我正在使用 Google PageSpeed 和 YSlow 测试我的网站,而我使用 MVC4 包创建的包没有得到

Gzipped(使用 gzip 或 deflate 压缩资源可以减少通过网络发送的字节数)并且没有

变化:Accept-Encoding 标头(指示代理服务器缓存资源的两个版本:一个是压缩的,一个是未压缩的。这有助于避免公共代理无法正确检测到 Content-Encoding 标头的问题。)

以及如何为 ISS 上的整个脚本文件夹添加编码头。我知道有 HTTP 响应标头,然后添加自定义 HTTP 响应标头,

在此处输入图像描述

但这是否适用于整个脚本文件夹和子文件夹以及在名称和值字段中放置的内容。

这怎么能解决。

问候。

4

4 回答 4

11

确保在 web.config 的 system.webserver 部分设置以下内容

<urlCompression doDynamicCompression="true"
                    doStaticCompression="true" dynamicCompressionBeforeCache="true" />
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge"
                   cacheControlMaxAge="365.00:00:00" cacheControlCustom="public" />
    </staticContent>
于 2012-08-30T20:48:55.787 回答
3

好的好Q,我简单的测试你的问题。请试试这个逻辑:

  public HttpResponseMessage Get(){

         var request=Request.CreateResponse(HttpStatusCode.OK);
         request.Content.Headers.Add("Content-Type", "application/x-gzip");
         request.Content.Headers.Add("Content-Encoding", "gzip");

    //TODO:Add your logic here...

         return request;
    }
于 2012-09-05T06:09:39.260 回答
3

要正确获取 IIS 上的 JavaScript 文件并使用 GZip 编码进行压缩,请将以下内容放入您的web.config中。

 <staticContent>

      <remove fileExtension=".js" />
      <mimeMap fileExtension=".js" mimeType="text/javascript" />

      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
    </staticContent>

    <urlCompression doDynamicCompression="true" dynamicCompressionBeforeCache="true" />
    <httpCompression noCompressionForHttp10="false" noCompressionForProxies="false" dynamicCompressionDisableCpuUsage="93" dynamicCompressionEnableCpuUsage="93" staticCompressionDisableCpuUsage="99" staticCompressionEnableCpuUsage="99">
      <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" dynamicCompressionLevel="4" />
    </httpCompression>
</system.webServer>

然后在MIME 类型中的 ISS 上

在此处输入图像描述

application/x-javascript更改为text/javascript

在此处输入图像描述

您现在将在 DevTools 中看到 JS 文件在 Content Encoding 列中使用gzip提供。

在此处输入图像描述

于 2013-10-17T09:06:00.517 回答
1

我认为 IIS 动态内容压缩至少应该负责 gzip 压缩,甚至可能为您处理所有这些问题,您是否尝试过此功能?

这篇 msdn 文章可能会有所帮助

于 2012-08-29T21:36:47.893 回答