通过Typoscript在TYPO3中添加模板导致异常

时间:2017-09-20 11:21:23

标签: templates typo3 typoscript

尝试学习TYPO3我已经设置了一个新的(版本8.7.6)安装。到目前为止,我已经很好了,但是当我尝试为我的第一个也是唯一一个带有Typoscript的页面设置模板然后在这个页面我收到错误信息在前端"未捕获的TYPO3例外#1294587217:该页面没有配置! [类型= 0] [页]。这意味着没有类型为PAGE的TypoScript对象,其中typeNum = 0已配置"

编辑 - 解决方案:

在NextThursday的回答中,我发现了 typoscript 中的两个缺陷。所以基本上它与以下任何细节无关。

  1. 正如答案page.typeNum = 0中所述,必须在page = PAGE下方添加page,这似乎是一个新的"概念,至少不是我参考的解决方案的一部分。

  2. 开口括号&#34; {&#34;我的进一步页面定义不允许在下一行,但必须在同一行,使两行{page {成为一行#Force cache refresh config.cache_period = 2 # Default PAGE object: /* page = PAGE page.10 = TEXT page.10.value = HELLO WARLD! */ # My new PAGE object page = PAGE page { bodyTag = <body> 10 = TEMPLATE 10.template = FILE 10.template.file = fileadmin/templates/blog/small.html 10.workOnSubpart = BODYSTART }

    < / LI>

    详细信息:

    • 已删除,因为不是问题的一部分

    的TypoScript:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    <!-- ###BODYSTART### begin -->
    
    <!-- ###BODYSTART### end -->
    </body>
    </html>
    

    模板文件small.html 位于DOCUMENT_ROOT \ mytypo3 \ fileadmin \ templates \ blog:

    文件夹中
    <?php
    namespace Psr\Http\Message;
    
    /**
     * HTTP messages consist of requests from a client to a server and responses
     * from a server to a client. This interface defines the methods common to
     * each.
     *
     * Messages are considered immutable; all methods that might change state MUST
     * be implemented such that they retain the internal state of the current
     * message and return an instance that contains the changed state.
     *
     * @see http://www.ietf.org/rfc/rfc7230.txt
     * @see http://www.ietf.org/rfc/rfc7231.txt
     */
    interface MessageInterface
    {
        //etc
    }
    

    我很高兴为上面的代码解释上面的代码有什么问题如何正确设置模板(&#34;详细信息& #34;)条件。

2 个答案:

答案 0 :(得分:1)

正如评论中所写,正确的答案是支撑必须在同一条线上。正确的代码是

page = PAGE 
page {
  bodyTag = <body>

  10 = TEMPLATE
  10.template = FILE
  10.template.file = fileadmin/templates/blog/small.html
  10.workOnSubpart = BODYSTART
}

typeNum设置为0,请参阅https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Page/Index.html#typenum

上的文档

This determines the typeId of the page. The &type= parameter in the URL determines, which page object will be rendered. The value defaults to 0 for the first found PAGE object, but it must be set and be unique as soon as you use more than one such object (watch this if you use frames on your page)

答案 1 :(得分:0)

如错误所示,您的TypoScript缺少typeNum:

page.typeNum = 0