我创建了一个非常简单的typo3扩展,只有一个模型和一个控制器。
这些是控制器中的唯一操作:
/**
* action list
*
* @return void
*/
public function listAction()
{
$projects = $this->projectRepository->findAll();
$this->view->assign('projects', $projects);
}
/**
* action show
*
* @param \Typo3\Productoverview\Domain\Model\Project $project
* @return void
*/
public function showAction(\Typo3\Productoverview\Domain\Model\Project $project)
{
$this->view->assign('project', $project);
}
然后我创建了一个文件夹并添加了一个插件元素:
之后我将插件本身放在首页并包含文件夹。
使用RealURL配置,我设法缩短了show action URL:
<?php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']= array (
'local.typo3' => array (
'init' => array (
'enableCHashCache' => 1,
'appendMissingSlash' => 'ifNotFile, redirect',
'adminJumpToBackend' => 1,
'enableUrlDecodeCache' => 1,
'enableUrlEncodeCache' => 1,
'emptyUrlReturnValue' => '/',
),
'postVarSets' => array (
'_DEFAULT' => array (
'project' => array (
array (
'GETvar' => 'tx_productoverview_projects[action]',
),
array (
'GETvar' => 'tx_productoverview_projects[project]',
),
),
),
),
...
有什么问题?
如果我现在点击首页上一个列表元素的链接,它会更改浏览器栏中的URL,但不会重定向我。我需要使用Control + F5刷新页面以进入项目视图或再次返回到首页(即使我手动更改了浏览器中的URL)。
我正在使用Typo3 7.6.10和realurl 2.0.15。
如果我在 realurl_conf.php 中使用cHash,它可以正常运行:
array (
'GETvar' => 'cHash',
),
如何在没有cHash的情况下工作?我的意思是'enableCHashCache'被激活..
一种可能的解决方案是禁用列表操作的缓存,但我不确定这是否可行:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'ET.' . $_EXTKEY,
'Projects',
array(
'Project' => 'list, show',
),
// non-cacheable actions
array(
'Project' => 'list',
)
);
答案 0 :(得分:2)
已知问题 - 在https://github.com/dmitryd/typo3-realurl/issues/244
上解释TL; DR:修复您网站上每个链接中的cHash。不是配置,而是生成链接的地方,在每个地方生成链接!