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

时间:2011-01-11 22:05:16

标签: asp.net caching outputcache

我想使用此声明

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

我们的主页。 (顺便说一句,这是有效的)

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

然后,在基页中我将站点的文化设置为fr-FR,如果他们键入mydomain.fr,则在键入mydomain.ch等时使用de-CH。

我想知道,因为两个网址都会加载相同的网页/default.aspx,所以两个用户的网页都是相同的(所以当.fr首先出现时,.ch访问者会看到(缓存的).fr页面),或框架是否思考并说:嘿,mydomain.fr/default.aspxmydomain.ch/default.aspx不同,即使它是相同的页面,所以我们不要采用缓存的并重新创建(和缓存)新版本?

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

2 个答案:

答案 0 :(得分:2)

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

HOST标头包含浏览器加载的主机名/域名;所以,mydomain.frmydomain.ch

答案 1 :(得分:0)

我强烈建议您不要根据用于访问您网站的域名自动设置文化。

相反,只需尊重浏览器的文化设置即可。一个原因是他们很可能会去你的法国网站,但更喜欢英文的东西。各种版本的浏览器都会向您发送所选的文化设置。

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

关于你的实际问题:如果你正确地实施文化资源,那么你不必担心缓存。它会照顾你。