Отладчик Facebook не будет очищать мой сайт
Я создаю сайт http://meer.li/, и когда я запускаю его через отладчик Facebook - http://developers.facebook.com/tools/debug/og/object?q=meer.li - он не может найди мои метатеги.
Когда я смотрю на источник того, что Facebook исправляет, он показывает урезанную версию моего сайта, где он изменил тип документа и нет метатегов - http://developers.facebook.com/tools/debug/og/echo?q=http%3A%2F%2Fmeer.li%2F.
Что я здесь не так делаю?
Я использую rails 3.2, ruby 1.9.3 и все это работает на Heroku с базой данных Монго.
редактировать
Кажется, что у меня есть право принять заголовок в моем приложении... если я делаю это в разных представлениях:
<%= request.headers["Accept"] %>
Я получил:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Почему мы можем очистить весь сайт, если мы делаем curl -H и правильные заголовки? Почему фейсбук не царапает мой сайт?
1 ответ
Пробуя ваш URL в отладчике, он говорит, что код состояния ответа - 206, что означает "Частичное содержимое".
Я попытался свернуть URL, и действительно, полученный ответ является частичным, он не включает теги html, head и body (или их закрывающие теги) и выглядит как ответ jsonp на html, завернутый в
$("#designs_content").append
Я не уверен, почему это происходит, может быть, ваш сервер проверяет строку агента пользователя запросов и ответов в соответствии с этим?
редактировать
Я не уверен, имеет ли это какое-либо отношение к Heroku, я никогда не работал с ними. Кроме того, я ничего не знаю о рельсах, так что я не могу помочь с этим.
Wget не имеет к этому никакого отношения, это ответ, который ваш веб-сервер возвращает на основе заголовков HTTP-запроса. Когда вы делаете запрос с помощью браузера, он добавляет несколько заголовков к запросу, чтобы помочь серверу разобраться в нескольких вещах. Вы можете просмотреть отправленные заголовки, если откроете firebug или инструменты разработчика в chrome (safari и т. Д.), На вкладке сети (у всех они есть) или с помощью сетевого анализатора.
Чтобы облегчить вам жизнь, я проверил заголовок, который вызывает эту проблему для вас... попробуйте это:
curl "http://meer.li/"
И вы увидите, что ответом является jsonp, а не вся html-страница. Теперь попробуйте это:
curl -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" "http://meer.li/"
И вы получите полную HTML-версию своей страницы.
Поскольку Facebook при удалении вашей страницы не отправляет заголовок "принять", ответ не совпадает с тем, что вы видите при просмотре источника в браузере.
Я понятия не имею, как вы можете решить эту проблему, так как это, безусловно, относится к вашей конкретной настройке, но теперь, по крайней мере, вы знаете, в чем проблема.