Typo3 缓存操作中控制器内的PageTitleProviders出现问题

Typo3 缓存操作中控制器内的PageTitleProviders出现问题,typo3,typo3-9.x,typo3-extensions,Typo3,Typo3 9.x,Typo3 Extensions,在我的扩展中,我使用一个自定义的PageTitleProvider作为我的详细视图。它仅在页面未缓存时工作。因此,我清除缓存,然后当我重新加载页面时,标题将是记录的名称,我将获得页面标题。由于加载时间太长,我无法将操作设置为“未缓存” 我的PageTitleProvider如下所示: use TYPO3\CMS\Core\PageTitle\AbstractPageTitleProvider; class CatalogPageTitleProvider extends AbstractPa

在我的扩展中,我使用一个自定义的PageTitleProvider作为我的详细视图。它仅在页面未缓存时工作。因此,我清除缓存,然后当我重新加载页面时,标题将是记录的名称,我将获得页面标题。由于加载时间太长,我无法将操作设置为“未缓存”

我的PageTitleProvider如下所示:


use TYPO3\CMS\Core\PageTitle\AbstractPageTitleProvider;

class CatalogPageTitleProvider extends AbstractPageTitleProvider
{
  /**
   * @param string $title
   */
  public function setTitle(string $title)
  {
    $this->title = (string)$title.' | '.$GLOBALS['TSFE']->rootLine[0]['title'] ;

  }


}

$search = ['&npsp;', '­' ];
$titleProvider = GeneralUtility::makeInstance(CatalogPageTitleProvider::class);
$titleProvider->setTitle( strip_tags(str_replace( $search, '',  $service->getName())));
在控制器中,我设置标题如下:


use TYPO3\CMS\Core\PageTitle\AbstractPageTitleProvider;

class CatalogPageTitleProvider extends AbstractPageTitleProvider
{
  /**
   * @param string $title
   */
  public function setTitle(string $title)
  {
    $this->title = (string)$title.' | '.$GLOBALS['TSFE']->rootLine[0]['title'] ;

  }


}

$search = ['&npsp;', '­' ];
$titleProvider = GeneralUtility::makeInstance(CatalogPageTitleProvider::class);
$titleProvider->setTitle( strip_tags(str_replace( $search, '',  $service->getName())));
有人知道是否有东西丢失了,或者这是一个已知的bug吗

致意
die Knolle

大约一年前有一个错误修复程序,旨在删除元标记和页面标题的单独缓存: 从错误修复描述中:

根据前端呈现的概念,页面标题和元标记不是 用于存储在页面缓存中以允许不可缓存 插件来修改这些

目前,页面标题和元标记都存储在单独的缓存中 条目,这违反了上述概念,而且不必要地过于严格 将这些代码部分耦合到TypoScriptFrontendController和 它的内在逻辑

此修补程序将删除这些缓存

此修复程序是在V9.5.8中引入的

我在项目中将脚本恢复为9.5.7版,页面标题再次正确:

一定有更干净的方法,但我还没有找到