我目前有文档类型:
Master
Home
News
About
我允许在root用户使用主页,因此当我访问/
时,它会显示我的主页,而不是转到/home
。然后我创建了一个新的Home for Home。这意味着我的内容 /页面布局如下所示:
Home
News
About
由于我希望我的所有网页都是/news
和/about
,但仍然/
是我的主页,因此我允许新闻< / strong>和关于是主页的子级(在权限标签中)。这很棒,因为我可以在我的主页文档类型上创建属性,其他文档类型将继承这些属性(例如SEO)。
嗯,无论好坏。如果我希望我的主页页面具有其他任何页面都不会继承的属性,我现在就不能这样做,因为所有其他页面都继承自我的主页文档类型。
我该如何实现这个目标:
@RenderBody()
/
是我的主页内容页我能想到的唯一方法是在root用户使用 Master 文档类型,然后用 Master 主页文档类型>并且具有与现在相同的结构,但基本上主的孩子主(在内容页面中)。这意味着/
设置为主内容页面,这是我不想要的。但是,网址重写/home
到/
应该可以解决我的问题,对吗?
有更好的方法吗?这是 的方式吗?让我知道你们如何构建这样的页面,这样我就可以为所有页面创建属性,同时将 Home 与其余页面分开。
谢谢!
答案 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,非常类似于umbracoNaviHide
和umbracoRedirect
,它会在不执行网址重定向的情况下显示所选网页的内容。
在主页面上,使用新媒体资源选择主页页面。现在,只要您浏览到/
,就会显示主页页面内容。
您的主页页面仍然可以通过/home
网址访问,因此您应该使用规范标记来防止重复内容,或者您可以从{{1}实施网址重写} /home
。