2016-11-23 2 views
0

я написал расширение с Extbase/жидкости и это расширение имеет плагин:TYPO3 плагин без кэширования

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'MyVendor.' . $_EXTKEY, 
    'Pi1', 
    array(
     'MyController' => 'list' 
    ), 
    // non-cacheable actions 
    array(
     'MyController' => 'list' 
    ) 
); 

Но при создании ссылки

<f:link.action arguments="{foo: 'bar'}">...</f:link.action> 

полученный URL имеет параметр cHash :

http://localhost/mypage/?tx_myext_pi1[foo]=bar&cHash=d1768a40d9370f7a8d327043da156a05 

Почему? Я определил этот плагин как «не кешировать», поэтому не должно быть параметра cHash.

TYPO3 версия 7.6.12.

ответ

2

Параметр cHash не используется для кэширования вашего содержимого, но для кэширования аргументов в URL-адресе, поэтому он не имеет никакого отношения к тому, что собственно действие кэшируется или нет.

Если ваше действие кэшировано и вы не видите никаких изменений при изменении шаблона или кода, то, возможно, вы изменили настройки кэша для действия, а localconf все еще кэшируется. В этом случае вам нужно очистить системный кеш в инструменте установки или удалить и установить расширение.

1

Чтобы удалить параметр cHash вы можете использовать f:link ViewHelper Аргумент noCacheHash:

<f:link.action arguments="{foo: 'bar'}" noCacheHash="true">...</f:link.action> 

The cHash не используется только для вас плагин. Также для остальной части вашей страницы (макет и т. Д.), Поэтому TYPO3 всегда устанавливает cHash, если у вас есть аргумент.

Если вы используете RealURL, chash disapear, если вы сопоставили все аргументы в URL.

+0

Проблема заключается не только в cHash, если не хотите, чтобы содержимое плагина было кэшировано. Я знаю «noCacheHash», но я не хочу его использовать, я хочу сделать это правильно/я хочу, чтобы Extbase/Fluid делал это правильно. И я не могу использовать «noCacheHash» для разбиения на страницы моего содержимого плагина (f: widget.paginate), поэтому эти ссылки также имеют параметр cHash. – Sven

+0

Почему «noCacheHash» должен быть «неправильным» способом? Поведение состоит в том, чтобы всегда добавлять cHash, если задан параметр в URL-адресе. В шаблоне страницы вы также можете установить аргумент «noCacheHash». И, конечно же: если вы используете расширение для создания «более удобных URL-адресов», вы можете удалить cHash, правильно настроив все параметры. Если у вас нет «хороших URL-адресов», это не вопрос одного или нескольких параметров или? –

+0

Я посмотрел в источнике сборщика uri, поэтому могу сказать: cHash всегда добавляется, если «noCacheHash» не установлен, параметр добавляется в url. Поэтому не имеет значения, используете ли вы действия, не связанные с кэшированием, или нет. –

Смежные вопросы