使用宏缓存时,您可以cache it by QueryString parameter,例如
<umbraco:Macro Alias="TestMacro" runat="server" TestParam="[@MyQueryStringKey]" />
如何按域名缓存?
我试过了,但它没有用:
<umbraco:Macro Alias="TestMacro" runat="server" Domain='<%=Request["SERVER_NAME"]%>' />
该网站正在使用Umbraco 4.7。
答案 0 :(得分:0)
一种方法是使用重写规则将域名添加到查询字符串中。查询字符串的这一部分对于站点的用户是不可见的。在域名在查询字符串中之后,您可以像往常一样使用查询字符串参数技术的宏缓存。
以下是使用IIS URL重写模块的示例。
<system.webServer>
<rewrite>
<rules>
<rule name="Append domain to query string" stopProcessing="false">
<match url=".*" />
<action type="Rewrite" url="{R:0}?currentDomain={HTTP_HOST}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
然而,这样做可能会产生意想不到的副作用。特别是,如果您正在构建一个url回到同一页面并且查询字符串参数已更改(分页,排序,过滤等),则需要注意不要包含currentDomain参数,否则它将对用户可见。这对你来说可能不是一个问题,但我已经看到了它会出现的地方。