值不能为空。参数名称:virtualPath - Sitecore
Value cannot be null. Parameter name: virtualPath - Sitecore
我在 sitecore 站点配置部分创建了一个新站点:
<site name="site2" hostName="website.local" virtualFolder="/oscar-dresses" physicalFolder="/" rootPath="/sitecore/content" targetHostName="website.local" startItem="/Oscar Dresses" database="web" 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="website" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="website.local" targetHostName="website.local" startItem="/home" database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" />
当我在配置中添加新站点后,当我转到 http://website.local/oscar-dresses 时。我得到值不能为空。参数名称:虚拟路径。我错过了什么吗?它在 sitecore 的预览模式下工作正常。
如有任何建议,我们将不胜感激。
我实际上认为这是一个错误,除非这里有人可以纠正它。我 运行 在设置用于测试目的的演示站点时遇到了同样的问题,并通过添加物理文件夹解决了这个问题。
如果只配置了虚拟文件夹,则 FileResolver 处理器在 args.Url.FilePath 中没有收到任何文件路径,并将空字符串传递给 DirectoryExists 方法。因此 "value cannot be null"。 St运行ge 的事情是,如果您不传递虚拟文件夹,则 FilePath 将设置为“/”并且处理器不会中断。当您仅添加 virtualFolder 并将 physicalFolder 保留为默认值时,我会期望相同的行为。
简而言之:您可以向 physicalFolder 添加一个值,这应该可以修复它。
<site name="site2" hostName="website.local" virtualFolder="/oscar-dresses" physicalFolder="/oscar-dresses" rootPath="/sitecore/content" targetHostName="website.local" startItem="/Oscar Dresses" database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" />
如果文件路径为空,您还可以覆盖 FileResolver 处理器并添加“/”。
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<httpRequestBegin>
<processor type="SitecoreMvc75.Pipelines.FileResolver, SitecoreMvc75" patch:instead="processor[@type='Sitecore.Pipelines.HttpRequest.FileResolver, Sitecore.Kernel']"/>
</httpRequestBegin>
</pipelines>
</sitecore>
</configuration>
但我们绝对应该向 Sitecore 支持报告问题。
虚拟文件夹和物理文件夹需要匹配。这是一篇关于您正在尝试做的事情的博客 post:
http://firebreaksice.com/sitecore-managed-sites-as-virtual-folders/
我在 sitecore 站点配置部分创建了一个新站点:
<site name="site2" hostName="website.local" virtualFolder="/oscar-dresses" physicalFolder="/" rootPath="/sitecore/content" targetHostName="website.local" startItem="/Oscar Dresses" database="web" 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="website" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" hostName="website.local" targetHostName="website.local" startItem="/home" database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" />
当我在配置中添加新站点后,当我转到 http://website.local/oscar-dresses 时。我得到值不能为空。参数名称:虚拟路径。我错过了什么吗?它在 sitecore 的预览模式下工作正常。
如有任何建议,我们将不胜感激。
我实际上认为这是一个错误,除非这里有人可以纠正它。我 运行 在设置用于测试目的的演示站点时遇到了同样的问题,并通过添加物理文件夹解决了这个问题。
如果只配置了虚拟文件夹,则 FileResolver 处理器在 args.Url.FilePath 中没有收到任何文件路径,并将空字符串传递给 DirectoryExists 方法。因此 "value cannot be null"。 St运行ge 的事情是,如果您不传递虚拟文件夹,则 FilePath 将设置为“/”并且处理器不会中断。当您仅添加 virtualFolder 并将 physicalFolder 保留为默认值时,我会期望相同的行为。
简而言之:您可以向 physicalFolder 添加一个值,这应该可以修复它。
<site name="site2" hostName="website.local" virtualFolder="/oscar-dresses" physicalFolder="/oscar-dresses" rootPath="/sitecore/content" targetHostName="website.local" startItem="/Oscar Dresses" database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" />
如果文件路径为空,您还可以覆盖 FileResolver 处理器并添加“/”。
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<httpRequestBegin>
<processor type="SitecoreMvc75.Pipelines.FileResolver, SitecoreMvc75" patch:instead="processor[@type='Sitecore.Pipelines.HttpRequest.FileResolver, Sitecore.Kernel']"/>
</httpRequestBegin>
</pipelines>
</sitecore>
</configuration>
但我们绝对应该向 Sitecore 支持报告问题。
虚拟文件夹和物理文件夹需要匹配。这是一篇关于您正在尝试做的事情的博客 post:
http://firebreaksice.com/sitecore-managed-sites-as-virtual-folders/