Есть действующий сайт (drupal 8.4, сервер на nginx). Из более, чем 2000 материалов время от времения (раз в 2-3 дня) перестают работать алиасы, определенные вручную, для нескольких нод. Алиасы не содержат каких-то спецсимволов и тп. (например, /opendata). В логах - только сообщение, о том, что страница не найдена (детальной информации об ошибке нет). Временно помогает только очистка кэша (опять же на пару дней).
Не знаю, связанно ди это с первой проблемой, но после очистки кэша иногда слетают заголовки в представлении, формируемом с помощью exposed filters. Лечится опять же с помощью повторной очистки кэша в админке.
Похожая ситуация обсуждается на англоязычных форумах и пока конкретного решения найти по ней не смог:
ERROR 404 after a while, clear cache fixes it
Combination of language negotiation and path aliasing can cause a corrupted route cache, 404s
Сталкивался ли кто-нибудь с такой проблемой и как решаете ее?
Комментарии
Ощущается где-то подвох, но чтобы понять где, нужно глубоко залезть собственными ручками и провести исследование. Так сложно ответить.
С такими проблемами не сталкивался, но я ещё не обновлялся до 8.4.
Пишу, чтобы тем, у кого возникнет такая проблема, было проще в ней разобраться. Начитавшись комментариев в ветке Combination of language negotiation and path aliasing can cause a corrupted route cache, 404s, понял следующее.
Если у вас есть тип материал, в котором есть поле типа "Link", содержащее внутренние ссылки на материалы сайта, то с большой вероятностью алиасы этих материалов будут периодически переставать работать и будете получать 404 ошибку при обращении к ним.
Переделал тип поля, буду наблюдать в течение недели. Отпишусь о результатах.
Версия подтверждена!
Если в каком-либо материале в поле типа "Ссылка" (внутренняя) указан алиас (например, /contacts), то при обращении к ноде, имеющей этот алиас, часто будете получать 404 ошибку.
Только в ноде? Или во вьюхах тоже?
Ссылок на представления не было, точно сказать не могу. Но допускаю, что может возникнуть та же ситуация.
Может это из-за какого-то кэширования? Может отключить кэширование и включить boost, например? Или выключить big pig?
Или из-за версии php?
Почему это есть не у всех интересно?