har*_*amc 2 c# model-view-controller asp.net-mvc umbraco umbraco7
我正在与Umbraco合作,并想知道是否有一种简单的方法来创建站点明智的设置节点.
目前我有这种树结构.
我想创建的是这样的
网站范围内容将包含类似Google Analytics Url的内容,用户可以轻松更改.
有没有办法实现这个目标?
编辑: 有关处理页面重定向的方法和无模板节点导致的404错误,请参阅底部...
公共节点结构可能看起来像这样允许特定于站点的内容 - 这里的优点是所有站点内容都驻留在主节点下,并且用户无法在根目录中创建更多内容(前提是您已正确设置) :
根据站点范围设置信息的数量,您可以在Home DocumentType上创建一个Settings选项卡并将其存储在那里(如上图所示); 或使用Settings节点创建树结构(如下图所示):
或者,对于全局设置/内容(我可能有多个站点),我经常在根目录创建一个单独的节点结构,以包含全局设置,电子邮件模板等:
创建设置DocumentType以充当文件夹或容器,但不要为其提供模板,并且可以在其下组织所有全局/站点范围的设置/数据内容.
在没有为它们分配/创建模板的情况下创建的DocumentTypes(如在树的基本级别的节节点及其子节点的情况下)将在有人试图访问它的URL时抛出404错误,因此应该是从网站上提供的任何导航中排除.任何用户手动输入您希望在其中找到节点的URL,例如/ settings将显示默认的404错误页面,因为它不存在.
有几种方法可以缓解这种情况:
umbracoRedirect使用别名并使用ContentPickerDataType 向DocumentType添加属性;
创建自定义404错误页面并设置Umbraco配置以使用它而不是默认配置.
如果您使用第一个选项,则可以设置您希望用户默认查看的页面 - 通常是主页.
如果您在404错误页面中有一些自定义逻辑(例如,根据URL查找最接近的匹配页面),或者使用SEO Checker之类的东西来处理404错误并重定向您,则第二个选项可能会很好.
通过简单地确保通过网站中的URL看不到这些节点,可以减轻很多这种情况,这可以通过编码导航结构(菜单,站点地图等)来排除它们.
注意:我通常会确保它们也被任何sitemap.xml生成器排除,以便搜索引擎不会尝试索引它们.您也可以将它们添加到robots.txt文件中.