我的TYPO3扩展程序有一个lib,可以从总库存中生成随机5张图像,例如100张图像中的图像。每次加载页面时都会随机完成。仅默认启用TYPO3缓存,因此每次显示相同的5个图像。由于lib位于网站的标题中(所以在每个页面上)我不想禁用缓存。如何禁用只有这一个lib的缓存?
的TypoScript:
plugin.tx_ExtName.widgets {
Slider = USER
Slider {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
vendorName = Name
extensionName = ExtName
pluginName = Backend
controller = Customers
action = Slider
switchableControllerActions {
Customers{
1 = Slider
}
}
settings =< plugin.tx_ExtName.settings
persistence =< plugin.tx_ExtName.persistence
view =< plugin.tx_ExtName.view
}
}
lib {
slider < plugin.tx_ExtName.widgets.Slider
}
答案 0 :(得分:0)
在你的ext_localconf.php
那里添加了你的插件,使用了configurePlugin
方法的第4个参数
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'Vendor.' . $_EXTKEY,
'PluginName',
array('Customers' => 'slider',),
array('Customers' => 'slider',) // List non-cachable action(s)
);
当然会将VendorName
和PluginName
修复为您自己的。这将导致插件的操作不会被缓存,而整个页面将保留在缓存中。
替代解决方案
您也可以使用JavaScript,只需在源代码中放置JS数组路径,并在文档加载时选择5个随机项,它将允许您避免使用非缓存内容。
答案 1 :(得分:0)
替代解决方案:plugin.tx_ExtName.widgets.Slider = USER_INT
。
这可以确保Slider插件始终处于未缓存状态。