【问题标题】:composite c1 cms page titles no longer displaying?复合 c1 cms 页面标题不再显示?
【发布时间】:2013-09-10 12:21:08
【问题描述】:

我刚刚开始使用复合 c1 cms - 我根据 razor / bootstrap 示例设置了一个网站,该示例运行良好,但现在由于某种原因页面标题未显示。

生成的标记如下:

<c1marker:marker xmlns:c1marker="http://www.composite.net/ns/asp.net/controls" key="[Composite.Function.Render.Asp.Net.Control.0]">&nbsp;

我正在从名为页面标题的布局中调用页面模板功能: @PageTemplateFeature("页面标题")

该功能中的代码如下:

<html xmlns:f="http://www.composite.net/ns/function/1.0" xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
    <div class="title">
        <h1>
            <f:function name="Composite.Web.Html.Template.HtmlTitleValue" />&#160;
        </h1>
    </div>
</body>

// --------------------------------------------- ----------------//

我发现了这个问题,以防其他人遇到这个问题,我使用的是基于 HTML 样板的模板,HTML 标签定义如下:

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->

由于某种原因,除非我将 xmlns 属性添加到 html 标记,否则它将无法工作:

<!DOCTYPE html>
<!--[if lt IE 7]>      
<html xmlns="http://www.w3.org/1999/xhtml" class="no-js lt-ie9 lt-ie8 lt-ie7" lang="@Lang"> <![endif]-->
<!--[if IE 7]>         <html xmlns="http://www.w3.org/1999/xhtml" class="no-js lt-ie9 lt-ie8" lang="@Lang"> <![endif]-->
<!--[if IE 8]>         <html xmlns="http://www.w3.org/1999/xhtml" class="no-js lt-ie9" lang="@Lang"> <![endif]-->
<!--[if gt IE 8]><!--> <html xmlns="http://www.w3.org/1999/xhtml" class="no-js" lang="@Lang"> <!--<![endif]-->
<head>

【问题讨论】:

  • 刚刚检查了 v. 4.0,打开 Cph / Razor 入门网站。工作正常。我创建了一个名为“页面标题”的页面模板功能,添加了调用“Composite.Web.Html.Template.HtmlTitleValue”的标记,从“2 列,内容和旁边”基于 Razor 的模板调用该功能,检查浏览器中基于此模板的页面,例如“如何编辑此网站” 标题按预期显示。你做的和上面的有什么不同吗?在您的案例中,标题没有出现在哪里?谢谢
  • 嗨,是的,如果我和你一样,我得到的标题显示得很好。我一定是在这个特定的网站上改变了一些东西,破坏了这个功能,我不知道我目前做了什么......
  • 我也尝试过创建一个新站点,不从中删除任何内容,根据我现有的站点创建模板和主布局,但标题没有出现。我假设模板或主布局中有一些东西不在我的模板或主布局中?
  • 你能给出更具体的重现吗?尽可能详细。如果这里有错误,我们希望记录并修复它。
  • 澄清一下: 1. 在起始站点 (Razor) 中,Composite.Web.Html.Template.HtmlTitleValue 函数在称为“英雄单元(默认)”的页面模板功能中调用。 2. 在 Layout.HeroUnit 函数中依次调用该特性。 3. 这个非常 Layout.HeroUnit 的函数是从页面模板中调用的,比如“2列,内容和旁边”等。可能是你错过了其中的一些“级别”?

标签: c1-cms


【解决方案1】:

根据documentation,您必须插入它以确保您的模板在使用特定的 C1 CMS XML 元素进行渲染、函数等时应该是有效的。

您可能还注意到代码是用 XHTML 编写的,不是 HTML。 (在“仔细查看模板标记”一章中阅读有关命名空间和 XHTML 的更多信息(抱歉,由于提供链接的堆栈溢出限制,我无法正确附加链接,但这里有空格-“https://docs.c1 .orckestra .com/Layout/Xml-Templates/A-Closer-Look-at-the-Template-Markup#_A_Closer_Look")。)

简而言之,如果您希望 CMS 正常运行,建议使用它,它不仅基于 HTML 当然它使用的是 HTML,但它也使用其他语言。页面的大部分部分是从发出 XHTML 文档的函数生成的——例如,Razor 函数或 XSLT 函数。 Here is Reference 如果你想通过。希望我能澄清你的疑问。

【讨论】:

    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 2012-04-22
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 2017-04-23
    • 2014-07-20
    相关资源
    最近更新 更多