Кеширование помогите разобраться.
Помогите разобраться со следующим…
По умолчанию все документы кешируються в core/cache/resource/web/resources
Положим мне надо кешировать 1 и туже страницу применив к ней разный шаблон и чтобы кешь сохранился обоих вариантов.
Поискав, в коментах тут modx.im/blog/questions/878.html нашел что нужно указать настройку для кеширования ресурса
если же задать
Вроде методом тыка понятно. Но блин где почитать документацию какие ключи что меняют.
К примеру cache_resource_key нету в конфигурации системы и по умолчанию его нету либо он пустой.
Но устанавливая его получаем смену директории кеширования ресурса!!!
В исходниках xpdo и modx кешь менеджеров таких ключей вроде нигде нет.
Куда рыть или может уже кто знает поделитесь черной магией(((
По умолчанию все документы кешируються в core/cache/resource/web/resources
Положим мне надо кешировать 1 и туже страницу применив к ней разный шаблон и чтобы кешь сохранился обоих вариантов.
Поискав, в коментах тут modx.im/blog/questions/878.html нашел что нужно указать настройку для кеширования ресурса
$modx->setOption('cache_resource_key', 'resource/pjax');
но при такой установке полностью затирается core/cache/resource/web/resources и теряется старый кешь. если же задать
$modx->setOption('cache_resource_key', 'pjax');
то сохраняется старая и появляется новая директория core/cache/pjax/web/resourcesВроде методом тыка понятно. Но блин где почитать документацию какие ключи что меняют.
К примеру cache_resource_key нету в конфигурации системы и по умолчанию его нету либо он пустой.
Но устанавливая его получаем смену директории кеширования ресурса!!!
В исходниках xpdo и modx кешь менеджеров таких ключей вроде нигде нет.
Куда рыть или может уже кто знает поделитесь черной магией(((
Комментарии: 6
И в догонку… в ресурсы кешируються только не посредсвенно страницы как таковые, а куда к примеру будет кеширован результат работы getPage / pdoPage опять же надо кешировать оба варианта для двух шаблонов.
P.S делаю смену шаблонов на лету для выдачи мобильного контента на мобильных устройствах.
Вариант с 2 доменом и копированием контента во 2 контекст знаю.
P.S делаю смену шаблонов на лету для выдачи мобильного контента на мобильных устройствах.
Вариант с 2 доменом и копированием контента во 2 контекст знаю.
Где вызываете $modx->setOption('cache_resource_key', 'resource/pjax'), так же как и в примере в плагине на OnWebPageInit?
Проверил — в кэше обе папки core/cache/resource/web/resources/ и core/cache/resource/pjax/web/resources/
У getPage и pdoPage есть параметр cache_key, в котором указывается ключ кэширования. Но по умолчанию берется из настройки cache_resource_key, которая заранее и меняется через setOption. Т.е. оба сниппета должны автоматом разделять кэш.
Проверил — в кэше обе папки core/cache/resource/web/resources/ и core/cache/resource/pjax/web/resources/
У getPage и pdoPage есть параметр cache_key, в котором указывается ключ кэширования. Но по умолчанию берется из настройки cache_resource_key, которая заранее и меняется через setOption. Т.е. оба сниппета должны автоматом разделять кэш.
Евгений спасибо за ответ… по рунету в основном ваши комментарии единственные полезные в плане кэширования остальное вода…
В плагине вызываю через объект самописного класса
modx->setOption('cache_resource_key', 'resource/pjax')
вызывал в тестовом сниппете.В плагине вызываю через объект самописного класса
вызывал в тестовом сниппете.Так делать бесполезно. Когда выполняется сниппет ресурс уже загружен из кэша и загружается с ключем resource, а не resource/pjax.
В лучшем случае документ будет всегда браться из базы, т.к. в кэше не будет находить (берется то он с ключем resource, а сохранятся будет с ключем resource/pjax), в худшем документ будет не с тем шаблоном.
Надо обязательно делать это в плагине, и на событии которое вызывается до загрузки документа
В плагине вызываю через объект самописного классаНе понял что именно вызываете, setOption?
Да setOption только до работчего состояния класс не могу довести чтобы проверить опыта ООП совсем нет(( уперся в 1 месте
Огромное спасибо все работает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.