1

我有toolbox很多自定义 ViewHelpers 的站点包扩展。为了不违反 DRY 规则,我注册了我自己的命名空间(使用全局命名空间导入提示),以便在 Fluid 中识别它,而不是像通常那样放置在每个模板的开头,typo3conf/ext/toolbox/ext_tables.php并且通常这样工作:

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

我可以(或者更确切地说可以)使用我的 VH's like <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 用于包含在带有FLUIDTEMPLATEcObject 的主要 TypoScript 中的页面模板中。

有人有这种奇怪的行为吗?

4

1 回答 1

4

用它ext_localconf.php代替ext_tables.php它。

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

于 2020-07-29T20:22:04.137 回答