8

我正在使用以下输出缓存配置文件:

<add name="MyFunkyProfile" duration="180" varyByParam="*" location="ServerAndClient" />

在开发中,我有一个带有一个 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 条目?这会阻止缓存正常工作。

任何想法如何解决这一问题?

4

2 回答 2

0

您是否尝试过varyByParamNone您的配置文件/配置文件中设置?请参阅http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx

另外,只是在这里猜测 - dev 和“live”之间的配置文件是否不同,例如varyByParam可能设置不同?

注意:我刚刚加入 SO,所以还不能添加评论(我会这样做而不是将其作为回复发布)。

于 2012-08-06T11:16:25.287 回答
0

Vary: Accept-Encoding头由 AppHarbor 路由层插入。标头对于获取下游代理(通常是像 AWS CloudFront 或类似的 CDN)以正确缓存 gzip 和非 gzip 版本的内容是必需的。这个问题有额外的细节

您能否详细说明这是如何给您的应用程序带来问题的?

于 2012-08-06T21:40:42.920 回答