c# - Umbraco - 错误此文档已发布,但其 url 会与内容冲突(更改主节点 url)

标签 c# asp.net-mvc umbraco umbraco7

我在尝试将主节点映射到 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的方法我都按照了,不知道哪里错了。

我也看过这个博客;

urlprovider and contentfinder

我已将网站节点上的 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/

相关文章:

c# - Umbraco 媒体服务创建媒体

c# - 有没有办法关闭 Hangfire 使用 serilog 进行的日志记录?

c# - 为什么这个程序的底部是 static void Main(string[] args)?

c# - 在 Run 中指定相对 FontSize

c# - ASP.NET MVC View : The name 'inject' does not exist in the current context

linux - Linux Docker 中的 Umbraco

c# - 如何使用 SIMD 计算数组中某个字节的出现次数?

c# - 为什么 Redis 服务器一直在向日志写入信息,即使没有人使用它?

angularjs - 将身份验证信息从 MVC 传递到 Angular

html - 相同的youtube视频在带有后退键的新闻列表上加载