我有一个运行在IIS 7.5上的MVC3站点,启用了压缩。
在站点的所有页面上,GZip压缩都可以正常工作,除了少数几个页面,在这些页面中我手动将内容类型更改为application/xhtml+xml
(由于各种原因,这是必要的),在控制器中进行更改(Response.ContentType = "application/xhtml+xml";
)。
有关此内容类型,会导致GZip无法工作,是否有任何方法可以解决这个问题?
我有一个运行在IIS 7.5上的MVC3站点,启用了压缩。
在站点的所有页面上,GZip压缩都可以正常工作,除了少数几个页面,在这些页面中我手动将内容类型更改为application/xhtml+xml
(由于各种原因,这是必要的),在控制器中进行更改(Response.ContentType = "application/xhtml+xml";
)。
有关此内容类型,会导致GZip无法工作,是否有任何方法可以解决这个问题?
application/xhtml+xml
不是IIS压缩已知要压缩的内置MIME类型之一。您必须显式地为此MIME类型启用压缩。
我假设您希望无论是静态文件还是动态生成的文件都启用压缩。为此,您必须将该MIME类型添加到计算机级别配置的system.webServer/httpCompression
的staticTypes
和dynamicTypes
部分。使用部署脚本中最简单的方法之一就是使用appcmd.exe
,如下所示:
添加对压缩静态内容的支持
appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/xhtml%%2bxml',enabled='True']" /commit:apphost
添加对动态内容的压缩支持
appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/xhtml%%2bxml',enabled='True']" /commit:apphost