我有一个在启用压缩的 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-type 添加到机器级配置和部分。使用部署脚本执行此操作的一种更简单的方法是像这样使用: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
显然,您可以对可能想要压缩的任何其他内容类型使用相同的方法。