Sitecore:创建新的 <site> 等于具有不同主机名的现有主机名会导致 "Layout not found" 错误
Sitecore: creating new <site> equal to existing one with different hostname causes "Layout not found" error
我希望能够从两个不同的主机名访问我的 Sitecore 网站,为此我在 web.config 中的 <sites>
下创建了一个新条目;这是代码片段(我省略了不相关的部分):
<site name="Site1" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.dev" />
<site name="Site2" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.mydev" />
我保存了配置并重新发布了整个网站只是为了确定,但无济于事:如果我访问第二个站点,我收到 "The layout for the requested document was not found." 错误,显然是由于请求布局 {00000000- 0000-0000-0000-000000000000}.
IIS 配置正确,两个主机名都映射到相关网站中的同一端口 - 但只有一个有效。
我是不是漏掉了一些很明显的东西?
编辑:完整的站点条目如下:
<site name="Site1" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.dev" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
<site name="Site2" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.mydev" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
是的。 StartItem 丢失。但是对于您想要的,使用竖线分隔符分隔同一属性中的多个主机名,而不是两个单独的站点定义。
试试这个:
<site name="Site1" hostName="Site1.dev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content/Site1" startItem="/home" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enableAnalytics="true" enablePreview="false" enableWebEdit="false" enableDebugger="false" disableClientData="false" />
<site name="Site2" hostName="Site2.dev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content/Site1" startItem="/home" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="false" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="false" enableWebEdit="false" enableDebugger="false" disableClientData="false" />`
这里最有可能发生的是 SiteResolver 管道进程实际上并没有达到您认为应该达到的站点定义。那是我首先要看的地方。确保您定义了一个默认的包罗万象的站点(没有主机名),并将基本渲染放在那里,以便您可以轻松识别它。话虽这么说,马克的回答是要走的路。
编辑:还请记住,网站定义的顺序在这里很重要。
在 'site' 节点上设置 targetHostName 属性并将 Rendering.SiteResolving 设置为 true。
<site name="Site1" hostName="mysyte.dev" targetHostName="mysyte.dev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
<site name="Site2" hostName="mysyte.mydev" targetHostName="mysyte.mydev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
我希望能够从两个不同的主机名访问我的 Sitecore 网站,为此我在 web.config 中的 <sites>
下创建了一个新条目;这是代码片段(我省略了不相关的部分):
<site name="Site1" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.dev" />
<site name="Site2" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.mydev" />
我保存了配置并重新发布了整个网站只是为了确定,但无济于事:如果我访问第二个站点,我收到 "The layout for the requested document was not found." 错误,显然是由于请求布局 {00000000- 0000-0000-0000-000000000000}.
IIS 配置正确,两个主机名都映射到相关网站中的同一端口 - 但只有一个有效。
我是不是漏掉了一些很明显的东西?
编辑:完整的站点条目如下:
<site name="Site1" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.dev" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
<site name="Site2" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="mysyte.mydev" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
是的。 StartItem 丢失。但是对于您想要的,使用竖线分隔符分隔同一属性中的多个主机名,而不是两个单独的站点定义。
试试这个:
<site name="Site1" hostName="Site1.dev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content/Site1" startItem="/home" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enableAnalytics="true" enablePreview="false" enableWebEdit="false" enableDebugger="false" disableClientData="false" />
<site name="Site2" hostName="Site2.dev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content/Site1" startItem="/home" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="false" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="false" enableWebEdit="false" enableDebugger="false" disableClientData="false" />`
这里最有可能发生的是 SiteResolver 管道进程实际上并没有达到您认为应该达到的站点定义。那是我首先要看的地方。确保您定义了一个默认的包罗万象的站点(没有主机名),并将基本渲染放在那里,以便您可以轻松识别它。话虽这么说,马克的回答是要走的路。
编辑:还请记住,网站定义的顺序在这里很重要。
在 'site' 节点上设置 targetHostName 属性并将 Rendering.SiteResolving 设置为 true。
<site name="Site1" hostName="mysyte.dev" targetHostName="mysyte.dev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
<site name="Site2" hostName="mysyte.mydev" targetHostName="mysyte.mydev" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/AppName" loginPage="/login" database="master" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>