You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在href中正确使用TYPO3模板常量?

搞定TYPO3常量链接的正确姿势

我来帮你解决这个问题!首先得区分你是在Fluid模板文件里写链接,还是在后台的RTE富文本内容元素里使用,两种场景的正确写法不一样,咱们一步步来梳理:

第一步:先确认常量配置没问题

你已经在TypoScript常量里定义了基础URL,这个操作是对的:

tx_dti.settings.url = https://someserver/

场景1:在Fluid模板里使用(最常见的情况)

你的原写法不生效,大概率是常量没传递到Fluid模板的可用上下文里。得先在TypoScript的setup部分把常量赋值给模板的settings变量:

plugin.tx_dti {
    settings {
        baseUrl = {$tx_dti.settings.url}
    }
}

之后在Fluid模板里,就能正常调用这个变量生成链接了:

<a href="{settings.baseUrl}?id=13" class="internal-link">Contact Form</a>

另外给你个更规范的小建议:TYPO3内置了f:uri.page视图助手,能自动生成符合规范的内部URL,还支持绝对路径。如果你只是想切换环境时修改基础URL,其实直接在后台「站点管理」里配置站点URL就行,不用自定义常量,更省心:

<a href="{f:uri.page(pageUid: 13, absolute: true)}" class="internal-link">Contact Form</a>

场景2:在后台RTE富文本内容里使用

如果是在后台编辑的富文本内容里想调用常量,直接写Fluid变量是不行的——RTE默认不解析这种语法。得先把常量放到全局配置里:

config.tx_dti_baseUrl = {$tx_dti.settings.url}

然后在RTE里用TYPO3专属的占位符语法:

<a href="{config:tx_dti_baseUrl}?id=13" class="internal-link">Contact Form</a>

注意:要确保你的RTE配置允许解析这种占位符,需要在RTE的「处理选项」里开启相关设置哦。


为啥你原来的写法不生效?

  • 要是在Fluid模板里:核心原因是常量没被正确传递到模板的settings上下文,导致{tx_dti.settings.url}没法被系统解析。
  • 要是在RTE里:RTE默认不识别Fluid变量,必须用TYPO3特定的占位符语法才能生效。

内容的提问来源于stack exchange,提问作者Michael Hoeller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:56:56