我正在使用以下输出缓存配置文件:
<add name="MyFunkyProfile" duration="180" varyByParam="*" location="ServerAndClient" />
在dev中,我有一个带有一个Vary条目的响应头:
HTTP/1.1 200 OK
Server: Microsoft-IIS/7.5
...
Vary: Accept-Encoding
Cache-Control: private, max-age=180, s-maxage=0
...
当我部署我的应用程序时,我在响应中插入了额外的Vary条目:
HTTP/1.1 200 OK
Server: nginx
...
Vary: Accept-Encoding
Cache-Control: private, max-age=180, s-maxage=0
...
Vary: *
...
为什么这个额外的Vary条目?这会阻止缓存正常工作。
任何想法如何解决这个问题?
答案 0 :(得分:0)
您是否尝试在个人资料/配置文件中将varyByParam
设置为None
?请参阅http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx。
另外,只是在这里猜测 - 配置文件在dev和'live'之间是否不同,例如varyByParam
可能设置不同吗?
注意:我刚刚加入了SO,所以暂时无法添加评论(我会做的,而不是将其作为回复发布)。
答案 1 :(得分:0)
AppHarbor路由层插入Vary: Accept-Encoding
标头。获取下游代理(通常是像AWS CloudFront或类似的CDN)以正确缓存内容的gzip和非gzip版本是必需的。这question has additional details。
您能详细说明这是如何导致您的应用程序出现问题吗?