TYPO3 10 <f:cObject />在清除缓存后未从tt_content表中呈现第一个内容元素

问题描述

我目前正面临一个问题,当我通过打字稿从特定页面获取内容时,如果我之前已删除所有缓存,则只能在第二次页面加载后获得全部内容。第一个content元素根本不呈现(似乎可以忽略)。

这是我的打字稿:

lib.dynamicContent = COA
lib.dynamicContent {
    5 = LOAD_REGISTER
    5 {
        colPos.cObject = TEXT
        colPos.cObject {
            field = colPos
            ifEmpty.cObject = TEXT
            ifEmpty.cObject {
                value.current = 1
                ifEmpty = 0
            }
        }
        pageUid.cObject = TEXT
        pageUid.cObject {
            field = pageUid
            ifEmpty.data = TSFE:id
        }
        contentFromPid.cObject = TEXT
        contentFromPid.cObject {
            data = DB:pages:{register:pageUid}:content_from_pid
            data.insertData = 1
        }
        wrap.cObject = TEXT
        wrap.cObject {
            field = wrap
        }
    }
    20 = CONTENT
    20 {
        table = tt_content
        select {
            includeRecordsWithoutDefaultTranslation = 1
            orderBy = sorting
            where = {#colPos}={register:colPos}
            where.insertData = 1
            pidInList.data = register:pageUid
            pidInList.override.data = register:contentFromPid
        }
        stdWrap {
            dataWrap = {register:wrap}
            required = 1
        }
    }
    90 = RESTORE_REGISTER
}

这是我如何流畅地呈现内容的方式:

<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{pageUid: '41',colPos: '1'}" />

清除缓存后,第一个内容元素的输出在第一个页面加载上:<div />。重新加载页面时,我会从页面获取全部内容

我已经检查了执行的数据库查询,但它们始终相同,并返回正确的结果。


系统:

TYPO3 10.4.8

PHP 7.3

解决方法

您应该删除stdWrap部分,该部分包含wrap,而该部分应通过Fluid模板中的纯HTML创建。

我不确定100%,但是我想required部分中的stdWrap检查也会禁用该内容,因为可能会在呈现实际内容之前对其进行检查。