2012-02-22 56 views
1

潜在的问题在调试过程中,我注意到这一点,并希望确保它在生产中不会发生:51degrees和IIS缓存,MVC3,具有输出

我实现了我的网站的移动版本,使用51degrees库与我的MVC3基于应用程序。我没有使用自定义的网址或子域名,因此每个请求都会在返回正常或移动版本的html之前进行分析,以查看它是否来自移动浏览器。

在调试过程中,我注意到IIS有时会缓存页面的输出。我只在主页上看到过这种情况。无论什么时候它被缓存,相同的内容被提供给移动和桌面浏览器,所以显然这是错误的。

我知道阻止页面缓存浏览器端的方法的数量,但认为我会检查是否有一个特定的推荐方式来处理这个问题?

回答

3

我是否认为您对移动和非移动网页都使用相同的URL是正确的?如果是这样,那么你将需要使用以下设置。

Response.Cache.VaryByHeaders.UserAgent = true;

这将确保正确配置的缓存将使用useragent字符串存储不同版本的页面。

+0

只有当您不让用户选择从站点的桌面版本切换到移动站点时才能使用,反之亦然。如果他切换,他仍然会看到缓存版本。考虑到缓存方差应考虑.aspxbrowseroverride中的cookie值。 – 2012-08-21 14:10:02

+0

是否可以在web.config中定义VaryByHeaders? – 2016-10-30 11:08:50