关于ASP.NET中页面输出缓存的问题

关于ASP.NET中页面输出缓存的问题,asp.net,caching,outputcache,Asp.net,Caching,Outputcache,我想用这句话 <%@ OutputCache Duration="20" Location="Any" VaryByParam="none"%> 为我们的主页。 (顺便说一句,这是可行的) 但是有多个域指向同一个站点,比如mydomain.fr和mydomain.ch 然后,在basepage中,如果他们键入mydomain.fr,我将站点的区域性设置为fr fr;如果他们键入mydomain.CH,则设置为de CH等 我想知道,由于两个url都会加载相同的页面/defaul

我想用这句话

<%@ OutputCache Duration="20" Location="Any" VaryByParam="none"%>

为我们的主页。 (顺便说一句,这是可行的)

但是有多个域指向同一个站点,比如mydomain.fr和mydomain.ch

然后,在basepage中,如果他们键入mydomain.fr,我将站点的区域性设置为fr fr;如果他们键入mydomain.CH,则设置为de CH等

我想知道,由于两个url都会加载相同的页面
/default.aspx
,所以当.fr首先出现时,.ch访问者会看到(缓存的).fr页面),还是框架会思考并说:嘿,
mydomain.fr/default.aspx
mydomain.ch/default.aspx
不同,即使它是同一个fysical页面,那么让我们不要使用缓存的页面并重新创建(和缓存)一个新版本


我已经读过关于页面输出缓存的varybyheader,但是我认为.fr vs.ch不是一个标题?

您可以通过
主机
标题改变它,这意味着每个域都有自己的缓存集


HOST
头包含浏览器加载的主机名/域名;因此,
mydomain.fr
mydomain.ch
等。

我强烈建议您不要根据他们访问您的站点时使用的域自动设置区域性

相反,只需遵守浏览器的区域性设置即可。一个原因是,他们很可能会去你的法语网站,但更喜欢英语的东西。不同版本的浏览器将向您发送其选择的区域性设置

此外,在网站顶部为用户提供一个小的语言图标(通常是一个标志)。这应该允许他们改变自己选择的语言

至于您的实际问题:如果您正确地实现了区域性资源,那么就不必担心缓存。已经为你准备好了