Typo3 realurl 问题 - 视图未更新
Typo3 realurl issue - view not updating
我创建了一个非常简单的 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 配置我设法缩短了表演动作 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]',
),
),
),
),
...
问题是什么?
如果我现在单击首页上一个列表元素的 link,它会更改浏览器栏中的 URL,但不会重定向我。我需要使用 Control + F5 刷新页面以进入项目视图或再次返回首页(即使我手动更改浏览器中的 URL)。
我正在使用 Typo3 7.6.10 和 realurl 2.0.15。
更新
如果我在 realurl_conf.php 中使用 cHash,它会正常工作:
array (
'GETvar' => 'cHash',
),
没有cHash怎么办?我的意思是 'enableCHashCache' 已激活..
更新 2
一个可能的解决方案是禁用列表操作的缓存,但我不确定这是否可行:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'ET.' . $_EXTKEY,
'Projects',
array(
'Project' => 'list, show',
),
// non-cacheable actions
array(
'Project' => 'list',
)
);
已知问题 - 在 https://github.com/dmitryd/typo3-realurl/issues/244
上进行了解释
TL;DR:修复您网站上每个 link 中的 cHash 包含问题。不是配置,而是生成 link 的地方,每个地方都生成 link!
我创建了一个非常简单的 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 配置我设法缩短了表演动作 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]',
),
),
),
),
...
问题是什么?
如果我现在单击首页上一个列表元素的 link,它会更改浏览器栏中的 URL,但不会重定向我。我需要使用 Control + F5 刷新页面以进入项目视图或再次返回首页(即使我手动更改浏览器中的 URL)。
我正在使用 Typo3 7.6.10 和 realurl 2.0.15。
更新
如果我在 realurl_conf.php 中使用 cHash,它会正常工作:
array (
'GETvar' => 'cHash',
),
没有cHash怎么办?我的意思是 'enableCHashCache' 已激活..
更新 2
一个可能的解决方案是禁用列表操作的缓存,但我不确定这是否可行:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'ET.' . $_EXTKEY,
'Projects',
array(
'Project' => 'list, show',
),
// non-cacheable actions
array(
'Project' => 'list',
)
);
已知问题 - 在 https://github.com/dmitryd/typo3-realurl/issues/244
上进行了解释TL;DR:修复您网站上每个 link 中的 cHash 包含问题。不是配置,而是生成 link 的地方,每个地方都生成 link!