-->

IIS内容类型错了压缩CSS(IIS content-type wrong for compress

2019-06-23 14:41发布

我开发使用大多是主题,但有几个在主题文件夹中的CSS文件的ASP.NET站点的一部分。 这些都包含在由像这样另一名开发人员在web.config:

<Content Include="App_Themes\SoftOrange\CMSStyles.css" />
<Content Include="App_Themes\SoftOrange\ContentStyles.css" />

在我们的内部测试服务器(IIS7,服务器2008 R2企业版)的静态和动态压缩全球IIS管理器选项上,超过2700个字节的文件。 站点特定的静态和动态压缩也将启用。

在某些时候(大概在CMSStyles.css命中2700个字节)一些风格得到酿 - 即。 中显然不是通过看页面加载。 我发现,内容类型(根据火狐7.0.1)中显示的文本/ CSS,当我装的URL,CMSStyles.css它看起来像在文本编辑器正常压缩垃圾:

  < 
等IE不直接打开css文件,但是当我使用的开发工具,以显示CSS,它显示为空。

我关掉静态内容压缩只是为了这个网站,和CSS文件,现在正常加载。 我的问题是,为什么? 它是一个内容类型的问题,内容编码,或者这是一个IIS的问题,或与CSS在Web应用程序中使用的方式有问题?

谢谢。

编辑:

这些是用于CMSStyles.css GET请求头:响应头

Accept-Ranges  bytes
Content-Encoding    gzip
Content-Length  1728
Content-Type    text/css
Date    Fri, 13 Apr 2012 01:22:43 GMT
Etag    "80a762a82cecd1:0"
Last-Modified   Fri, 30 Mar 2012 04:22:03 GMT
Persistent-Auth true
Server  Microsoft-IIS/7.5
Vary    Accept-Encoding
X-Powered-By    ASP.NET

请求头

Accept text/css,*/*;q=0.1
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding gzip, deflate
Accept-Language en-gb,en;q=0.5
Connection  keep-alive
Cookie  -removed-
Host    -removed-
Referer -removed-
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

所以它看起来像内容的编码是corrent:gzip的。

Answer 1:

这里的问题(从我类似问题的经验)是Content-Length

检查是否设置Content-Length在你的代码的任何部分,删除它,它会再次工作。 这是为什么 ? 因为如果你设置的Content-Length的头中的IIS则无法将其更改为压缩的一个,并且以gzip解压缩失败。 为什么IIS无法改变它呢? 因为默认情况下,如果你在IIS上设置一个头这个头依然存在,不能改变(特别是如果你较早地刷新它)。 还有就是让IIS更改设置,但它只是为了更好地避免设置后的标志。

类似的问题: ASP.NET网站有时会结冰和/或显示在页面加载时的最高奇的文字,负载均衡的服务器上

更新

从@thinkOfaNumber:原来我是用DevExpress的压缩以及IIS压缩 。 我在web.config关闭DevExpress的压缩和它的作品!

什么是显示这里是第一压缩设置Content-Length和第二压缩无法改变它,因为Content-Length是在头部和头不能改变*写你设置后,所以第二压缩改变最终的压缩与结果一侧的浏览器不能正确读出它,然后无法解压缩正确。

[*]还有就是要改变标题后,你必须给他们的IIS,在此之前将它们发送到浏览器的方式,这样就可以不断变化的IIS的默认行为可以做,但也不是那么容易,我不知道可以解决这个问题。



文章来源: IIS content-type wrong for compressed CSS