我在尝试将主节点映射到 umbraco 中的“/”路由时遇到上述问题。 我一直在遵循“混合框架”包中使用的方法
Hybrid Framework for Umbraco v7 Best Practises
我的结构如下(网站在树的根部)
Website node
|
- Home node
|
- Other nodes
我创建了一个主页 url 提供程序,它返回正确的 url,如下所示;
public string GetUrl(UmbracoContext umbracoContext, int id, Uri current, UrlProviderMode mode)
{
var content = umbracoContext.ContentCache.GetById(id);
if (content != null && content.DocumentTypeAlias.ToLower() == "home" && content.Parent != null)
{
//The home node will have / instead of /home/.
return content.Parent.Url;
}
return null;
}
当浏览到主节点(在后台)时,我检查项目 url 的属性并得到以下错误;
This document is published but its url would collide with content /Website (id=1083)
从hybrid framework到letter的方法我都按照了,不知道哪里错了。
我也看过这个博客;
我已将网站节点上的 UmbracoInternalRedirectId 属性设置为指向主节点。
仍然没有我可以识别的线索。谁能帮忙?非常感谢
编辑:
我仍在努力弄清这件事的真相!
我已经按照其他人对配置文件的建议进行了操作,但这没有用。
也许为了更简洁地表达我的观点,我已经使用 vanilla umbraco 安装复制了错误并将其上传到 github;
https://github.com/Aeptitude/BrokenURLUmbraco
它只是使用一个 sdf 文件作为应该包含的数据库。
有一个根网站节点和它下面的一个主节点。有一个 umbracointernalredirectid 指向下面的主节点。 HomeUrlProvider 的设置如我的原始帖子中所示。 如果有人能捕获这个并帮助我,那就太棒了。 用户名为admin,密码为password11
非常感谢。
最佳答案
您还可以在 web.config 中启用 umbracoHideTopLevelNodeFromPath 属性,以生成包含树中所有级别的路径。
如果您想在生成的 URL 中保留您的域,您可以使用 umbracoSettings.config 文件中的 useDomainPrefixes 设置启用它。
正如其他答案中所述 - 使用您的自定义 URL 提供程序,您需要确保只有一个节点将接收相同的 URL - 当涉及到默认 Umbraco 行为时,上述设置完全涵盖了这一点。
关于c# - Umbraco - 错误此文档已发布,但其 url 会与内容冲突(更改主节点 url),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46092529/