MVC4捆绑GZIP和标头

Mat*_*cic 9 gzip asp.net-mvc-4 asp.net-optimization

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

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

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

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

在此输入图像描述

但是这将在整个脚本文件夹和子文件夹中工作,以及在名称和值字段中放置什么.

怎么能解决这个问题.

问候.

小智 11

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

<urlCompression doDynamicCompression="true"
                    doStaticCompression="true" dynamicCompressionBeforeCache="true" />
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge"
                   cacheControlMaxAge="365.00:00:00" cacheControlCustom="public" />
    </staticContent>
Run Code Online (Sandbox Code Playgroud)


Mat*_*cic 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>
Run Code Online (Sandbox Code Playgroud)

然后在 ISS 的MIME 类型中

在此输入图像描述

application/x-javascript更改为text/javascript

在此输入图像描述

现在,您将在 DevTools 中看到 JS 文件正在通过内容编码列中的gzip提供服务。

在此输入图像描述