关于主文档类型和主文档类型的误解

时间:2017-05-04 08:10:02

标签: umbraco umbraco7

我目前有文档类型

Master
    Home
    News
    About

我允许在root用户使用主页,因此当我访问/时,它会显示我的主页,而不是转到/home。然后我创建了一个新的Home for Home。这意味着我的内容 /页面布局如下所示:

Home
    News
    About

由于我希望我的所有网页都是/news/about,但仍然/是我的主页,因此我允许新闻< / strong>和关于主页的子级(在权限标签中)。这很棒,因为我可以在我的主页文档类型上创建属性,其他文档类型将继承这些属性(例如SEO)。

嗯,无论好坏。如果我希望我的主页页面具有其他任何页面都不会继承的属性,我现在就不能这样做,因为所有其他页面都继承自我的主页文档类型。

我该如何实现这个目标:

  • 拥有 Master.cshtml 文件,其中包含@RenderBody()
  • 主页上创建一个不会被所有其他文档类型继承的属性
  • 确保/是我的主页内容页

我能想到的唯一方法是在root用户使用 Master 文档类型,然后用 Master 主页文档类型>并且具有与现在相同的结构,但基本上的孩子(在内容页面中)。这意味着/设置为内容页面,这是我不想要的。但是,网址重写/home/应该可以解决我的问题,对吗?

有更好的方法吗?这是 的方式吗?让我知道你们如何构建这样的页面,这样我就可以为所有页​​面创建属性,同时将 Home 与其余页面分开。

谢谢!

2 个答案:

答案 0 :(得分:2)

您应该使用文档类型的组合而不是“嵌套继承”。这个新功能完全是为了解决这类问题:

您可以向每个文档类型添加SEO文档类型以添加​​SEO选项卡,但仅向某些文档类型添加一些特定属性。无需更改内容部分中的树。

例如,您可以创建以下文档类型:

  • seo(仅用于其他文档类型中的合成)

  • shared(仅用于其他文档类型中的合成)

  • 主页(包含seo + shared的组合)+此文档类型的一些特定字段

  • 新闻(包含seo + shared的组合)+此

    的其他其他字段

  • about(具有seo的组成,不需要此特定文档类型的共享)

请注意,它们在文档类型树上是平的,并且不需要主文档类型,因为您将通过合成而不是继承添加所有共同内容。

内容树看起来完全一样:

Home
    News
    About

看看http://letswritecode.net/articles/document-type-compositions-in-umbraco/的一些例子

答案 1 :(得分:1)

一种方法是,只要请求根/网址,就可以使用Umbraco内部重定向来显示主页页面内容。

文档类型添加新的内容选择器属性,并为其指定别名umbracoInternalRedirectId。这是一个reserved property alias,非常类似于umbracoNaviHideumbracoRedirect,它会在不执行网址重定向的情况下显示所选网页的内容。

enter image description here

页面上,使用新媒体资源选择主页页面。现在,只要您浏览到/,就会显示主页页面内容。

enter image description here

您的主页页面仍然可以通过/home网址访问,因此您应该使用规范标记来防止重复内容,或者您​​可以从{{1}实施网址重写} /home