2012-02-26 53 views
0

我使用smarty模板引擎,並在我的網站上放置了一些Facebook meta標籤。看起來Facebook的刮板比渲染smarty渲染引擎更快。Smarty的渲染速度不夠快,Facebook刮板無法找到meta標籤

這裏是皮棉工具的輸出鏈接: https://developers.facebook.com/tools/debug/og/echo?q=http%3A%2F%2Fslipdragon.com%2Fvideo%2F6XA881OYRRHB%2FBmx-Street-Video--Vasya-L--Carhartt-Team

在我的模板我畫從模板引擎賦值的變量meta標籤:

<meta property="og:title" content="{$vdo.title|strip_tags|strip}" /> 
<meta property="og:description" content="{$vdo.description|strip_tags|strip}" /> 
<meta property="og:type" content="website" /> 
<meta property="og:url" content="http://slipdragon.com{$smarty.server.REQUEST_URI}" /> 

任何想法如何設置這?看起來,模板的智能渲染對於Facebook的刮板來說太慢了。根據LINT工具,臉書不是晚上看到一個標題或任何其他元標記正確填充。

+0

嗯,我覺得別的是錯的。您是否積極,當您在瀏覽器中訪問與Facebook完全相同的網址時,網頁正常呈現。 – 2012-02-26 20:40:17

+0

如果您將Facebook LINT工具的來源與實際頁面源進行比較,您將看到實際頁面源顯示正確的元標記。 – 2012-02-26 22:42:37

回答

0

問題在於驗證。 Facebook的LINT工具無法正確解析頁面,因爲它位於登錄憑證後面。謝謝!

1

activate debugging並查看模板的實際渲染需要多長時間。除非你正在做一些非常時髦的事情,或者糟糕透頂 - Smarty不會造成延誤。這很可能是因爲你的一些數據庫查詢,外部資源查找等原因。

+0

Rodney感謝您的回覆。模板引擎是否以異步的方式將頁面合併在一起?我正在運行一些查詢。 – 2012-02-26 21:43:22

+0

PHP沒有任何異步。只有一個「線程」。你可以預先將數據推入(使用'assign()'),或者將其拉入*(通過插件函數)。 – rodneyrehm 2012-02-26 22:43:31

+0

Smarty緩存模板並將它們轉換爲下一次執行的PHP頁面。即使你說的是正確的,Meta標籤也在'HEAD'部分,所以它們會先呈現。你吠叫錯了樹。 – 2012-02-26 22:46:38

0

我檢查了你的網址。

這些值是空白的,它與速度無關,當它們不存在時,Smarty標籤是空白的。

不知何故

{$vdo.title|strip_tags|strip} 
{$vdo.description|strip_tags|strip} 

不要存在,請嘗試在本地和涉及在Facebook之前得到的值。