![](/img/trans.png)
[英]My Rails 3 site won't start on Ubuntu/Apache2/Passenger
[英]Facebook debugger won't scrape my site
我正在創建網站http://Meer.li ,當我通過facebook調試器運行它時 - http://developers.facebook.com/tools/debug/og/object?q=meer.li - 它不能找到我的元標記。
當我查看facebook刮擦的來源時,它顯示了我的網站的精簡版本,它更改了doc-type並且沒有元標記 - http://developers.facebook.com/tools/debug/og /echo?q=http%3A%2F%2Fmeer.li%2F 。
我在這做錯了什么?
我正在運行rails 3.2,ruby 1.9.3並且整個東西在Heroku上運行,帶有一個mongo數據庫。
編輯
看來我的應用程序中確實有正確的接受標頭...如果我在不同的視圖中這樣做:
<%= request.headers["Accept"] %>
我明白了:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
如果我們卷曲-H和正確的標題,為什么我們可以刮掉整個網站? 為什么facebook不刮我的網站?
在調試器中嘗試您的URL,它表示響應狀態代碼為206,這意味着“部分內容”。
我試圖卷曲網址,實際上我得到的響應是偏的,它不包括html,head和body標簽(或它們的結束標簽),看起來像html包含的jsonp響應
$("#designs_content").append
我不確定為什么會發生這種情況,也許你的服務器根據這個檢查請求和響應的用戶代理字符串?
我不確定這是否與Heroku有任何關系,我從未與他們合作過。 另外,我對rails一無所知,所以我無能為力。
Wget與此無關,它是您的Web服務器根據http請求的標頭返回的響應。 當您使用瀏覽器發出請求時,它會向請求添加一些標頭,以幫助服務器找出一些內容。 如果您在chrome(safari等)中打開firebug或開發人員工具,在網絡選項卡(他們都有)或使用網絡嗅探器,您可以查看發送的標頭。
為了讓您的生活更輕松,我檢查了導致此問題的標題是什么...試試這個:
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在刪除頁面時沒有發送“接受”標題,因此當您使用瀏覽器查看源時,響應不是您所看到的。
我不知道你怎么解決這個問題,因為它肯定是你的具體設置,但現在至少你知道問題是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.