【问题标题】:TYPO3 - Howto disable cache for specific content element on a page?TYPO3 - 如何禁用页面上特定内容元素的缓存?
【发布时间】:2019-08-15 06:58:07
【问题描述】:
是否可以禁用页面上某个特定元素的缓存?如this answer 中所述,我已经尝试了以下打字稿,但它不适用于我(TYPO3 v8):
tt_content.textmedia.20 = USER_INT
我正在使用带有自定义 CType 的 ext:fluid_styled_content。据我了解,上面的打字稿应该禁用内容元素“文本和媒体”的缓存(仅作为示例)。
我的自定义元素使用 ViewHelper 从 API 读取实时数据。但是 ViewHelper 只是在元素未被缓存时被调用。否则将显示缓存的内容。
【问题讨论】:
标签:
typo3
typoscript
view-helpers
【解决方案1】:
fluid_styled_content 使用 FLUIDTEMPLATE 内容对象而不是 USER,因为它在 css_styled_content 中。 FLUIDTEMPLATE 没有“非缓存”变体。我相信有一些选项可以更改该元素的缓存,但我在文档中找不到任何内容。
或者,您可以将其包装在 COA_INT 对象中,如下所示:
tmp.textmedia < tt_content.textmedia
tt_content.textmedia >
tt_content.textmedia = COA_INT
tt_content.textmedia {
10 < tmp.textmedia
10 =< lib.contentElement
}
如果你看一下打字稿对象浏览器(模板模块),在更改之前它应该是这样的:
修改后应该是这样的:
【解决方案2】:
但是ext:form 的这种构造不起作用
tmp.tt_content.form_formframework < tt_content.form_formframework
tt_content.form_formframework >
tt_content.form_formframework = COA_INT
tt_content.form_formframework {
10 < tmp.tt_content.form_formframework
10 =< lib.contentElement
}
tmp.tt_content.list.20.form_formframework < tt_content.list.20.form_formframework
tt_content.list.20.form_formframework >
tt_content.list.20.form_formframework = USER_INT
tt_content.list.20.form_formframework {
10 < tt_content.list.20.form_formframework
10 =< lib.contentElement
}
对于ext:news 不起作用
tmp.tt_content.list.20.news_pi1 < tt_content.list.20.news_pi1
tt_content.list.20.news_pi1 >
tt_content.list.20.news_pi1 = USER_INT
tt_content.list.20.news_pi1 {
10 < tt_content.list.20.news_pi1
10 =< lib.contentElement
}