我是typo3的初学者,我已经使用Kickstarter进行了扩展,我想仅为此扩展禁用缓存,而不是我的typo3网站的其他页面。
我该怎么做?
非常感谢。
答案 0 :(得分:27)
你需要注意三个地点。首先看看你的ext_localconf.php文件。对于每个插件(通过插件,我的意思是前端插件),有一行类似于这一行:
t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_yourext_pi1.php', '_pi1', 'list_type', 1);
要禁用缓存,您需要将最后一个值设置为零,如下所示。
t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_yourext_pi1.php', '_pi1', 'list_type', 0);
在插件的PHP文件中(例如pi1 / class.tx_yourext_pi1.php),您需要确保删除以下行,注释掉或更改为" false"
$pi_checkCHash = true;
最后,将此行添加到main()函数(其余部分以下):
$this->pi_USER_INT_obj = 1;
应该这样做。
铜 罗马
答案 1 :(得分:3)
同样,禁用或限制每页的缓存时间可能是一种解决方案 该设置位于pageicon edit - >标签行为 - >缓存设置 (?no_cache = 1 url参数)
另一种方法是在数据更改时清除缓存 在一个sysfolder中/在其ts页面配置中为单个页面设置一个autoclear TCEMAIN.clearCacheCmd = 1,3,5 - 数字是pid逗号分隔 TCEMAIN.clearCacheCmd = all - 或清除所有缓存
http://typo3blog.at/blog/artikel/typo3-caching-grundlagen/
http://typo3weblog.de/2008/07/26/tcemainclearcachecmd-statt-clear-cache-button/
答案 2 :(得分:1)
使用$GLOBALS['TSFE']->set_no_cache()
will disable caching 整个页面!
如果要禁用页面缓存,请调用函数
$GLOBALS["TSFE"]->set_no_cache()
。在开发过程中调用它!如果您创建的内容可能未被缓存,请调用它。
Other sources是解释性的。
相反,请确保您的扩展程序类型为USER_INT
,参见the docs
$this->pi_USER_INT_obj = 1;
答案 3 :(得分:1)
不幸的是,这些答案已有8年以上的历史了。如今,ExtensionUtility类提供了一个用于基于操作禁用缓存的开关:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'MyCompany.' . $_EXTKEY,
'Sample',
['Sample' => 'index'],
// non-cacheable actions:
['Sample' => 'index']
);
https://docs.typo3.org/typo3cms/ExtbaseFluidBook/4-FirstExtension/7-configuring-the-plugin.html
答案 4 :(得分:0)
在撰写本文时,让我们使用适用于TYPO3 CMS 6.0.x-6.2.x的最新信息更新此问题。如果您的开发站点尚未生效,我使用了FluidTYPO3 team生成的uncache扩展名。很高兴能够完全禁用缓存,直到你得到错误,这样你就不会每2秒清除一次缓存。
答案 5 :(得分:-3)
使用以下脚本从当前页面删除缓存。
$GLOBALS['TSFE']->set_no_cache()
您可以在控制器文件中使用以上脚本。