TypoScript中stdWrap.replacement与insertData结合失效问题排查
问题原因及解决方法
这段TypoScript里替换操作不生效的核心是执行顺序问题:TEXT对象的insertData属性会在stdWrap处理之后才执行。也就是说,当stdWrap.replacement运行时,value里的{path:...}还没被解析成实际路径,自然找不到要替换的index.html字符串。
要解决这个问题,只需要调整执行顺序,让路径先被解析,再执行替换操作。最简单的做法是把insertData移到stdWrap内部,确保它在replacement之前运行:
10 = TEXT 10 { value = {path: EXT:myext/Resources/Public/index.html} stdWrap { insertData = 1 replacement.10 { search = index.html replace = } } }
也可以通过嵌套TEXT对象的方式实现同样的效果:
10 = TEXT 10 { stdWrap.cObject = TEXT stdWrap.cObject { value = {path: EXT:myext/Resources/Public/index.html} insertData = 1 } stdWrap.replacement.10 { search = index.html replace = } }
两种写法本质都是保证路径解析操作先完成,再让替换逻辑作用在真实路径上。
内容的提问来源于stack exchange,提问作者Ludwig
相关产品推荐
相关产品推荐

