IIS静态压缩不是Gzip或缓存文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS静态压缩不是Gzip或缓存文件相关的知识,希望对你有一定的参考价值。
我有一个ASP.NET网站,我正在尝试启用静态压缩。我的网站具有以下压缩配置。
<httpCompression directory="%SystemDrive%inetpub empIIS Temporary Compressed Files" staticCompressionEnableCpuUsage="0" staticCompressionDisableCpuUsage="100" staticCompressionIgnoreHitFrequency="true">
<clear/>
<scheme name="gzip" dll="%Windir%system32inetsrvgzip.dll" staticCompressionLevel="10" dynamicCompressionLevel="3" />
<scheme name="deflate" dll="%Windir%system32inetsrvgzip.dll" staticCompressionLevel="10" dynamicCompressionLevel="3" />
<staticTypes>
<clear/>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="false" dynamicCompressionBeforeCache="false" />
我不想启用动态压缩。根据Microsoft documentation,
与静态压缩不同,IIS 7在每次客户端请求内容时执行动态压缩,但压缩版本不会缓存到磁盘。
我的Web服务器负载过程非常繁重,因此这将是一个不必要的负担。静态压缩很吸引人,因为压缩文件缓存在磁盘上。
但是,即使在连续刷新localhost页面(Ctrl + F5)并等待15 +分钟观看压缩目录后,也没有任何缓存。
此外,没有任何相关文件(css / js / html)与gzip压缩标头一起返回。
安装了动态和静态压缩。动态关闭。如果我打开动态压缩,我会开始看到gzip HTTP响应标头返回。
我错过了什么?为什么静态压缩拒绝工作?
美国10
我遇到了这个问题,并将其追溯到错误的URL重写规则。静态资产生活在C:inetpubwwwrootMyProjectwwwroot
,重写规则正在改变^assets/(.*)
到./{R:1}
,所以IIS正在查看MyProject
的顶部而没有找到文件。但是当它将请求交给.Net应用程序时,应用程序会看到该文件并提供服务。所以这两个症状是:
- gzip仅在启用动态压缩时起作用(因为.Net应用程序正在为文件提供服务)。
- 关闭
runAllManagedModulesForAllRequests
(在modules
元素上)导致我们的静态文件变为404错误---基本上表明IIS没有看到文件的问题。
为了解决这个问题,我将重写规则从./{R:1}
更改为./wwwroot/{R:1}
。
从你的问题来看,没有太多的背景...但对我来说,这是有效的。
由asp.net mvc缓存,因为它是一组多个js文件。我想IIS可以看到它不是磁盘上的静态文件,因为它是动态的。
还有一个帮助,看看你的js文件实际上做了什么id,以找出它在我发布的链接中没有进行压缩的原因。
我还在你发布的链接中看到了一行:
与静态压缩不同,IIS 7在每次客户端请求内容时执行动态压缩,但压缩版本不会缓存到磁盘。由于静态和动态内容之间的主要区别,因此进行了此更改。静态内容不会改变。但是,动态内容通常是由应用程序创建的内容,因此经常更改,例如Active Server Pages(ASP)或ASP.NET内容。由于动态内容应经常更改,因此IIS 7不会对其进行缓存。
也尝试阅读这篇文章:https://forums.iis.net/t/1071156.aspx
以上是关于IIS静态压缩不是Gzip或缓存文件的主要内容,如果未能解决你的问题,请参考以下文章