c# - Umbraco 站点范围的设置节点

标签 c# asp.net-mvc model-view-controller umbraco umbraco7

我正在使用 Umbraco,想知道是否有一种简单的方法来创建站点明智的设置节点。

目前我有这个树结构。

  • 内容
    • 首页
    • 项目 1
    • 项目 2
      • 项目 2a

我想创建的是这样的

  • 全站点内容
  • 内容
    • 首页
    • 项目 1
    • 项目 2
      • 项目 2a

站点内容将包含诸如 Google Analytics Url 之类的内容,用户可以轻松更改。

有没有办法做到这一点?

最佳答案

编辑:请参阅底部以了解处理页面重定向和无模板节点导致的 404 错误的方法...

常见的节点结构可能看起来像这样,它允许站点特定的内容 - 这里的优点是所有站点内容都位于主节点下,用户无法在根节点中创建更多内容(前提是您已经设置了一些东西正确启动):

  • 首页[包含设置选项卡]
    • 第 1 页
    • 第 2 页
    • 联系我们
    • 关于

根据站点范围设置信息的多少,您可以在主页 DocumentType 上创建一个“设置”选项卡并将其全部存储在那里(如上图所示);或使用设置节点创建树结构(如下图所示):

  • 主页
    • 第 1 页
    • 第 2 页
    • 联系我们
    • 关于
    • 设置[具有常规设置选项卡/属性]
      • 电子邮件模板[例如存储代表邮件合并模板的其他节点]

或者,对于全局设置/内容(我可能有多个站点),我经常在根目录创建一个单独的节点结构以包含全局设置、电子邮件模板等:

  • 首页
    • 第 1 页
    • 第 2 页
    • 联系我们
    • 关于
  • 设置 [具有 GlobalSettings 选项卡/属性]
    • 电子邮件模板[例如存储代表邮件合并模板的其他节点]

创建一个 Settings DocumentType 作为一个文件夹或容器,但不要给它一个模板,你所有的全局/站点范围的设置/数据内容都可以在它下面组织。

处理没有模板的节点

在没有为它们分配/创建模板的情况下创建的 DocumentType(例如树的基本级别的 Section 节点及其子节点)将在有人尝试访问它的 URL 时抛出 404 错误,并且因此应排除在网站呈现的任何导航之外。任何手动输入您希望在其中找到节点的 URL 的用户,例如/settings 将显示默认的 404 错误页面,因为它不存在。

有几种方法可以缓解这种情况:

  1. 使用别名 umbracoRedirect 并使用 ContentPicker 数据类型向 DocumentType 添加一个属性;

  2. 创建自定义 404 错误页面并设置 Umbraco 配置以使用该页面而不是默认页面。

如果您使用第一个选项,您可以设置您希望用户默认看到的页面 - 通常是主页。

如果您在 404 错误页面中有一些自定义逻辑(例如根据 URL 查找最接近的匹配页面),或者使用诸如 SEO Checker 之类的东西来为您处理 404 错误和重定向,那么第二个选项可能会更好。

通过简单地确保这些节点在网站中的 URL 根本不可见,可以减轻很多这种情况,这可以通过对导航结构(菜单、站点地图等)进行编码以排除它们来完成。

注意:我通常会确保它们也被任何 sitemap.xml 生成器排除,这样搜索引擎就不会尝试将它们编入索引。您也可以将它们添加到您的 robots.txt 文件中。

关于c# - Umbraco 站点范围的设置节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34890112/

相关文章:

c# - Foreach 循环 - 长字符串的性能

c# - 我在这个我没有看到的 IL 中犯了错误吗?

c# - 从 HandleErrorAttribute 中获取 Action 的属性

java - 使用 MVC 在 Java Web 应用程序中的过滤器中实现用户权限的正确方法是什么?

c# - 泛型类约束,其中 <T> 是约束泛型类的类型

asp.net-mvc-3 - 是否应该在 MVC 框架中的 Model 类中调用 Web 服务?

c# - 从 cmd 运行时控制台和 winforms 应用程序之间的区别

c# - 防伪 token Web Api 2

ASP.NET MVC Html.TextBox刷新问题

c# - 为 ASP.NET Web API 2 应用程序启用 Windows 和基本身份验证