0

我刚刚开始使用复合 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("Title of page")

该功能中的代码如下:

<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>
4

1 回答 1

0

根据文档,您必须插入它以确保您的模板在使用特定的 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 函数。如果你想通过这里是参考。希望我能澄清你的疑问。

于 2017-09-12T16:05:49.190 回答