REVO - ошибка 500 после смены шаблона у ресурса
Всем привет!
Имею на вооружении Revo 2.3.1-pl. Со вчерашнего вечера наблюдается проблема отображения некоторых ресурсов, которым при редактировании был сменен шаблон, выставленный ранее.
При попытке просмотреть такие ресурсы мы видим белый экран, как-будто шаблон пустой.
В консоли браузера имеем следующий лог:
При просмотре HTTP-заголовков в консоли во время обращения к проблемным ресурсам видим следующее:
В логах Modx /core/cache/logs пусто.
Полная очистка кэша как через админку, так и путем очистки директории /core/cache/
ни к чему не приводит.
Подчеркиваю, что проблема только для некоторых ресурсов, и вне зависимости от шаблона.
Выявлено только, что если вернуть все к прежнему состоянию, то бишь указать предыдущий шаблон ресурсу — все ОК.
Есть предположение, что проблема возникла после того, как был отредактирован один из шаблонов, который уже был назначен ресурсу.
Закономерность так и не выявил, т.к. назначив ресурсу другой шаблон, который не редактировался ошибка не исчезает.
Ресурсы и шаблоны могут быть разные, однако опять же для каких-то все проходит ОК, а для каких-то нет…
Хостер — FastVPS.
Перезапуск сервера также ничем не помог.
Подскажите, в чем может быть проблема? С чего начать копать?
Буду весьма благодарен!
Имею на вооружении Revo 2.3.1-pl. Со вчерашнего вечера наблюдается проблема отображения некоторых ресурсов, которым при редактировании был сменен шаблон, выставленный ранее.
При попытке просмотреть такие ресурсы мы видим белый экран, как-будто шаблон пустой.
В консоли браузера имеем следующий лог:
Failed to load resource: net::ERR_CACHE_MISS
При просмотре HTTP-заголовков в консоли во время обращения к проблемным ресурсам видим следующее:
Request Method: GET
Status Code: 500 Internal Server Error
В логах Modx /core/cache/logs пусто.
Полная очистка кэша как через админку, так и путем очистки директории /core/cache/
ни к чему не приводит.
Подчеркиваю, что проблема только для некоторых ресурсов, и вне зависимости от шаблона.
Выявлено только, что если вернуть все к прежнему состоянию, то бишь указать предыдущий шаблон ресурсу — все ОК.
Есть предположение, что проблема возникла после того, как был отредактирован один из шаблонов, который уже был назначен ресурсу.
Закономерность так и не выявил, т.к. назначив ресурсу другой шаблон, который не редактировался ошибка не исчезает.
Ресурсы и шаблоны могут быть разные, однако опять же для каких-то все проходит ОК, а для каких-то нет…
Хостер — FastVPS.
Перезапуск сервера также ничем не помог.
Подскажите, в чем может быть проблема? С чего начать копать?
Буду весьма благодарен!
Комментарии: 11
500 ошибка в логах веб-сервера.
Ошибки синтаксиса в php, попытка подключить несуществующий файл, работа с объектом, которого нет и т.п.
Ошибки синтаксиса в php, попытка подключить несуществующий файл, работа с объектом, которого нет и т.п.
Да, но тем не менее должно быть странным, что до этого все было норм.
В шаблонах производились правки только по добавлению чанков, и то только в одном.
А ошибка появляется даже когда другой шаблон подключаешь к ресурсу, не обязательно тот, в котором до этого производились правки.
К тому же сам Modx ничего в логах не пишет…
В шаблонах производились правки только по добавлению чанков, и то только в одном.
А ошибка появляется даже когда другой шаблон подключаешь к ресурсу, не обязательно тот, в котором до этого производились правки.
К тому же сам Modx ничего в логах не пишет…
Так чего Вы гадаете то? В логи посмотрите.
в том то и дело, что логи пока только в консоли браузера, и их я перечислил. В логах Modx пусто.
Придется искать в логах Apache…
Придется искать в логах Apache…
Очевидно, в шаблоне есть какой-то глючный сниппет.
Нужно найти и починить.
Нужно найти и починить.
Есть вероятность, что какой-то общий глюк имеется во всех шаблонах, т.к. пробовал просто очистить шаблон — все ОК. Пытаюсь назначить другой с похожим набором сниппетов — ошибка опять появляется. Однако почему-то для ряда других страниц те же шаблоны ошибку не вызывают… Странно все это.
Буду вылавливать бяку, о результатах отпишусь.
Спасибо!
Буду вылавливать бяку, о результатах отпишусь.
Спасибо!
Ура, товарищи! Свершилось чудо!
Удалось таки выявить «коротыш» в цепи)
Источником проблемы оказался самопальный сниппет [[myId]], суть которого — вывод [[*pagetitle]] родительского
контейнера в текущем дочернем документе, служащего заголовком меню из соседних ему документов.
Собственно вот он:
не имеющего родителей. Убрал вызов — все ОК, ошибки нет.
Всем большое спасибо!
Удалось таки выявить «коротыш» в цепи)
Источником проблемы оказался самопальный сниппет [[myId]], суть которого — вывод [[*pagetitle]] родительского
контейнера в текущем дочернем документе, служащего заголовком меню из соседних ему документов.
Собственно вот он:
$parent = $modx->getObject('modResource',$input);
$doc = $parent ->get($options);
return $doc;
Вызов из шаблона:[[*parent:myId=`pagetitle`]]
Ошибка появлялась тогда, когда шаблон, содержащий вызов такого сниппета, был назначен документу,не имеющего родителей. Убрал вызов — все ОК, ошибки нет.
Всем большое спасибо!
Именно поэтому всегда нужно делать так:
$doc = '';
if ($parent = $modx->getObject('modResource', $input)) {
$doc = $parent->get($options);
}
return $doc;
Василий, моё громадное спасибо!
Поправил сниппет.
Поправил сниппет.
Алексей, у меня судя по всему подобная проблема, буду очень благодарен если ответите на пару вопросов в скйпе: waterspb1990
а у меня такой сниппет аналогичный
что нетак?
$resource = $modx->getObject('modResource', $id);
$rez_fild = $resource->get($fild);
return $rez_fild;
преобразование его в $rez_fild='';
if ($resource = $modx->getObject('modResource', $id)) {
$rez_fild = $resource->get($fild);
}
return $rez_fild;
подобную ошибку не удалилочто нетак?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.