Неправильный кэш страницы TYPO3

Эта проблема возникает спорадически на страницах с большим количеством посетителей.
Иногда TYPO3 отображает содержимое совершенно другой страницы (включая раздел HTML-заголовка).

Например, если пользователь вызывает следующую страницу: /products/ (контроллер по умолчанию ProductController с listAction) TYPO3 показывает содержимое случайного контроллера и действие того же плагина на странице (например, ApplicationController с showAction).
Сайт не перенаправляет на другую страницу, он просто показывает неправильный контент!

Я уже пробовал следующие вещи:

  • Я добавил действие Controller + к nonCacheableControllerActions (Проблема возникает через день снова)
  • Добавление ?no_cache=1 на URL (проблема решена, но скорость страницы снижена)
  • Очистка кэша (проблема решена, независимо от того, какой кэш очищен. Но проблема снова возникает через день)
  • Я написал скрипт, который каждые несколько минут вызывал страницу, которая, похоже, решала проблему.

У кого-нибудь еще есть такая же проблема?

Характеристики:

  • Версия TYPO3: 7.6.22
  • версия realurl: 2.2.1

0

Решение

Эти проблемы с кэшированием обычно происходят из-за неправильного или отсутствующего cHash.

Ты можешь использовать $GLOBALS['TSFE']→reqCHash();
в действиях вашего контроллера. Это отключает кэширование, если cHash не установлен, поэтому убедитесь, что вы не получите неправильные записи кэша.
Пожалуйста, обратите внимание: если вы установите [pageNotFoundOnCHashError] = 1 в настройках вашей системы, вы получите ошибки не найденные страницы, когда страница вызывается без cHash, если установлено значение 0, страница все равно будет отображаться, но не кэшироваться.

Кроме того, есть системный параметр «[FE] [cHashRequiredParameters]» — вы можете добавить туда параметры своего плагина. Если cHash не задан, но один из параметров задан, то TYPO3 запускает настроенное поведение cHash Error.
Я полагаю, что cHashes затем автоматически устанавливаются для typolinks, вы можете попробовать и посмотреть. Если они не установлены автоматически, вы должны установить «useCacheHash = 1» в своих ссылках на действие show.

я предпочитаю & используйте первый вариант.

1

Другие решения

Попробуйте определить плагин как USER_INT.
plugin.tx_yourextkey = USER_INT

Это скажет TYPO3 визуализировать код для каждого запроса.

Лучшей практикой будет вторая страница для showAction, и только на странице single_view определите плагин как USER_INT.

Но если у вас есть две страницы для этого, вы не должны испытывать эту проблему. И не нужно настройки USER_INT.

0

Начиная с TYPO3 v9, используйте следующее:

$TYPO3_CONF_VARS['FE']['cacheHash']['requireCacheHashPresenceParameters']

с массивом в качестве значения вместо

$TYPO3_CONF_VARS['FE']['cacheHash']['cHashRequiredParameters']

со списком через запятую.

0
По вопросам рекламы [email protected]