Asp.net mvc 4 MVC4绑定GZIP和标头

Asp.net mvc 4 MVC4绑定GZIP和标头,asp.net-mvc-4,gzip,asp.net-optimization,Asp.net Mvc 4,Gzip,Asp.net Optimization,我正在用Google PageSpeed和YSlow测试我的站点,而我用MVC4捆绑包创建的捆绑包没有得到支持 gzip(使用gzip或deflate压缩资源可以减少通过网络发送的字节数)并且没有 Vary:Accept Encoding header(指示代理服务器缓存两个版本的资源:一个已压缩,一个未压缩。这有助于避免公共代理无法正确检测内容编码头的问题。) 以及如何为ISS上的整个脚本文件夹添加编码头。 我知道有HTTP响应头,然后添加自定义HTTP响应头 但这将对整个脚本文件夹和子文件

我正在用Google PageSpeed和YSlow测试我的站点,而我用MVC4捆绑包创建的捆绑包没有得到支持

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

Vary:Accept Encoding header(指示代理服务器缓存两个版本的资源:一个已压缩,一个未压缩。这有助于避免公共代理无法正确检测内容编码头的问题。)

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

但这将对整个脚本文件夹和子文件夹以及名称和值字段中的内容起作用

如何解决这个问题


尊敬。

我认为IIS动态内容压缩至少应该考虑gzip,甚至可能为您考虑所有这些,您尝试过这个功能吗


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

<urlCompression doDynamicCompression="true"
                    doStaticCompression="true" dynamicCompressionBeforeCache="true" />
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge"
                   cacheControlMaxAge="365.00:00:00" cacheControlCustom="public" />
    </staticContent>

好的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;
    }

要在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>

然后在你的ISS上输入MIME类型

应用程序/x-javascript更改为文本/javascript

现在,您将在DevTools中看到,JS文件在内容编码列中使用了gzip


我已经尝试过了,但它对捆绑创建的脚本不起作用。非常好的答案+1.