我在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。我得到的价值不能为空。参数名称:virtualPath。我错过了什么吗?它在sitecore的预览模式下工作正常。
任何建议都将受到赞赏。
答案 0 :(得分:5)
我实际上认为这是一个错误,除非有人在这里纠正这个。我在设置演示站点以进行测试时遇到了同样的问题,并通过添加物理文件夹来解决这个问题。
如果仅配置虚拟文件夹并且将空字符串传递给DirectoryExists方法,则FileResolver处理器不会在args.Url.FilePath中接收文件路径。因此“价值不能为空”。奇怪的是,如果你没有传递虚拟文件夹,那么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支持报告问题。
答案 1 :(得分:5)
virtualFolder和physicalFolder需要匹配。这是一篇关于你要做什么的博客文章:
http://firebreaksice.com/sitecore-managed-sites-as-virtual-folders/