Магнолия: запрос диапазона не обслуживает контент, когда включен фильтр кеширования, в результате чего общий доступ в Facebook не работает

При отправке HTTP-запроса с Range заголовок для Магнолии, я получаю ответ с Content-Length: 0:

        curl -I -X GET \
          http://localhost:8080/ \
          -H 'Accept-Encoding: gzip, deflate' \
          -H 'Cache-Control: no-cache' \
          -H 'Range: bytes=0-2000'
        HTTP/1.1 206
        Set-Cookie: SID=C36D961EC92D152724BBCD0C34EC6536; Path=/; HttpOnly
        X-Magnolia-Registration: Registered
        Accept-Ranges: bytes
        Cache-Control: no-cache, no-store, must-revalidate, max-age=0
        ETag: 8B4901E7DD862E5E74287A0F538DCDDFEB78DE77
        Content-Range: bytes 0-2000/23529
        Content-Encoding: gzip
        Vary: Accept-Encoding
        Pragma: no-cache
        Expires: Thu, 01 Jan 1970 00:00:00 GMT
        Last-Modified: Thu, 19 Dec 2019 08:52:49 GMT
        Content-Type: text/html;charset=UTF-8
        Content-Length: 0
        Date: Thu, 19 Dec 2019 08:52:49 GMT

Однако, когда я отключаю модуль кэша магнолии, я получаю ожидаемый ответ:

/server/filters/cache -> enabled: false

        curl -I -X GET \
          http://localhost:8080/ \
          -H 'Accept-Encoding: gzip, deflate' \
          -H 'Cache-Control: no-cache' \
          -H 'Range: bytes=0-2000'
        HTTP/1.1 206
        Set-Cookie: SID=FF557EC1F0653E5CBD81A57D599091AE; Path=/; HttpOnly
        X-Magnolia-Registration: Registered
        Accept-Ranges: bytes
        ETag: 2A9DE4F4B2ACDDE22BAC3C07784CD65693574B67
        Content-Range: bytes 0-2000/2147483647
        Content-Type: text/html;charset=UTF-8
        Content-Length: 2001
        Date: Thu, 19 Dec 2019 08:51:49 GMT

У меня проблема в том, что сканер Facebook не может обнаружить какие-либо метатеги открытого графа при попытке сканирования моего сайта. Я думаю, что причина в описанной выше проблеме с отправкой запросов диапазона в Magnolia (что делает краулер Facebook).

Мои теги Open Graph настроены правильно ( работают с opengraphcheck и Twitter Card Validator).

Я использую Magnolia 5.7.1.

1 ответ

Решение

Самый простой способ - настроить избиратель заголовка запроса для обхода кеша при наличии заголовка диапазона.
См. RequestHeaderPatternSimpleVoter и / или RequestHeaderPatternRegexVoter для получения дополнительных сведений о том, как его установить, но я все равно считаю это обходным путем, а не окончательным решением.

Кажется странным, что такое происходит. Не могли бы вы скопировать его, например, на https://demo.magnolia-cms.com/?

Другие вопросы по тегам