typo3 - 从 BE 注销后,我注册的命名空间停止工作

标签 typo3 extbase typo3-10.x

我有我的网站包扩展 toolbox有很多自定义 ViewHelpers。为了不违反 DRY 规则,我注册了自己的命名空间(使用 global namespace import tip )以便在 Fluid 中识别它,而不是像通常那样放在每个模板的开头 typo3conf/ext/toolbox/ext_tables.php 中。一般来说,这是有效的:

$GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces']['toolbox'] = ['BIESIOR\Toolbox\ViewHelpers'];

我可以(或者更确切地说可以)使用我的 VH,例如 <toolbox:someViewHelper /> ,但是在将页面从开发移动到生产(同一台机器,只是切换域)之后,突然我得到一个异常,例如:

TYPO3Fluid\Fluid\Core\Parser\UnknownNamespaceException

Fluid parse error in template Standard_action_Orangeheader_2c41396366318874342b894b22eff7acb311cc0c, line 2 at character 1. Error: Unknown Namespace: toolbox (error code 0). Template source chunk: {toolbox:containerEscape(condition: data.tx_mask_escape, start: 'true')}

当我以管理员身份登录 BE 并在同一浏览器中预览 FE 时,令人沮丧的问题就消失了,我会尽快从 BE 注销和/或访问所需的 FE 页面另一个浏览器,异常又回来了。

正如开发过程中提到的,注销后并没有出现此问题。

ViewHelper 用于包含在主 TypoScript 中的页面模板 FLUIDTEMPLATE cObject。

有人有如此奇怪的行为吗?

最佳答案

使用 ext_localconf.php 而不是 ext_tables.php

不确定,但我认为 ext_table.php 仅是后端 (BE) 上下文,但您需要 FE 上下文中的 ViewHelper。

关于typo3 - 从 BE 注销后,我注册的命名空间停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63161780/

相关文章:

TYPO3:如何将页面内容插入模板

mysql - TYPO3 如何在 TCA displayCond 中使用复杂的 mysql 语句

typoscript - type3 未重定向到登录页面

class - TYPO3 v10 持久化映射

typo3 - 如何在typo3版本10中执行纯SQL($GLOBALS ['TYPO3_DB']->sql_query())?

typo3 - 将 locallang 值插入 TypoScript [stdWrap]

typo3 - 流体内容 : How to hide default Headline in TYPO3 8

typo3 - 如何使用 TYPO3 Fluid form.upload 上传文件并将其传递给 Extbase Controller

TYPO3 对象存储为空

php - 如何在 TYPO3 中使用 Extension Builder?