4

我正在开发具有相同 URL 动态内容的移动、智能手机、桌面网站,我无法设置不同的用户代理。默认值为 Accept-Encoding 即将到来。我们如何替换 vary:Accept-Encoding 为 vary:User-agent?

我尝试了所有这些

1.<%@ OutputCache Duration="180" VaryByHeader="User-Agent" %>

2.HttpContext.Current.Response.AddHeader("Vary", "User-Agent");

3.HttpContext.Current.Items.Add("Vary", "User-Agent");

4.HttpContext.Current.Response.Cache.SetVaryByCustom("User-Agent");

5.HttpContext.Current.Response.Cache.VaryByHeaders.UserAgent = true;

6.HttpContext.Current.Response.Headers.Set("Vary", "User-Agent");

但还是来了

Cache-Control:public, max-age=180 Content-Encoding:gzip Content-Length:9741 Content-Type:text/html; charset=iso-8859-1 日期:2013 年 7 月 23 日星期二 12:19:23 GMT 到期时间:2013 年 7 月 23 日星期二 12:22:22 GMT 最后修改时间:2013 年 7 月 23 日星期二 12:19:22 GMT 服务器: Microsoft-IIS/7.5 Vary:Accept-Encoding

我想要的是

Cache-Control:public, max-age=180 Content-Encoding:gzip Content-Length:9741 Content-Type:text/html; charset=iso-8859-1 日期:2013 年 7 月 23 日星期二 12:19:23 GMT 到期时间:2013 年 7 月 23 日星期二 12:22:22 GMT 最后修改时间:2013 年 7 月 23 日星期二 12:19:22 GMT 服务器: Microsoft-IIS/7.5 不同:用户代理

谢谢

4

1 回答 1

0

“如果您只想按 HTTP 标头值进行缓存,则必须将 VaryByParam 属性设置为“无”。”

http://msdn.microsoft.com/en-us/library/vstudio/system.web.ui.outputcachelocation%28v=vs.100%29.aspx

http://msdn.microsoft.com/en-us/library/vstudio/a6s4ks5w%28v=vs.85%29.aspx

于 2014-02-01T21:47:58.547 回答