I'm testing my site with Google PageSpeed and YSlow and the bundles that i've created with MVC4 bundles aren't getting
Gzipped (Compressing resources with gzip or deflate can reduce the number of bytes sent over the network) and there is no
Vary: Accept-Encoding header (Instructs proxy servers to cache two versions of the resource: one compressed, and one uncompressed. This helps avoid issues with public proxies that do not detect the presence of a Content-Encoding header properly.)
And also how can i add encoding header for the whole scripts folder on the ISS. I know there is HTTP Response Headers, then Add Custom HTTP Response Header,
but will this work on the whole scripts folders and subfolders and what to put in the Name and Value fields.
How can this be solved.
Regards.
make sure you set the following in system.webserver section of your web.config
<urlCompression doDynamicCompression="true"
doStaticCompression="true" dynamicCompressionBeforeCache="true" />
<staticContent>
<clientCache cacheControlMode="UseMaxAge"
cacheControlMaxAge="365.00:00:00" cacheControlCustom="public" />
</staticContent>
OK good Q,I simple your problem testing.Please try this logic:
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;
}
To properly get the JavaScript files on IIS compressed and served with GZip encoding put the following in your 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>
And then on your ISS in MIME Types
change the application/x-javascript to text/javascript
You will now see in DevTools that JS files are being served with gzip in Content Encoding column.
I think that IIS Dynamic Content Compression should be taking care of the gzipping at least, and maybe even all of this for you, have you tried this feature?
This msdn article might be helpful
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With