2011-06-22 84 views
6

在Zend框架中處理favicon.ico的最佳方式是什麼?我看到了需要修改phtml文件的替代方案,例如:在Zend Framework中使用favicon

$this->headLink()->headLink(array('rel' => 'favicon', 
           'href' => '/img/favicon.ico'), 
           'PREPEND') 

或修改.htaccess文件。

謝謝,

+0

定義 「最佳途徑」。確實有很多不同的方式可以做到這一點,但取決於你希望它的功能如何(對所有頁面都一樣?)以及你的網站目前如何設置,「最佳方式」可能會有很大差異。 – Niklas

+0

@尼克拉斯:你說得對,有很多不同的方法。其實這就是爲什麼我感到困惑。我正在嘗試使用所有頁面應該相同的favicon.ico。根據我在問題中提出的第一個替代方案修改我的佈局/ phtml文件,但圖標不會更改(它仍然是默認的zend-framework圖標)。這是肯定的,我做錯了什麼。 – polerto

+0

你也''echo $ this-> headLink()'?因爲只是分配它將不會顯示任何東西,除非你在視圖/佈局的某處實際輸出'headLink'的內容 – Niklas

回答

5

三種選擇:

  • 什麼都不做 - 如果圖標被命名爲favicon.ico並坐在你的公共目錄,大多數瀏覽器將它撿起來
  • 硬編碼<link>代碼到你佈局
  • 編程添加鏈接標籤在你的代碼示例

個人而言,我會去的選項2.有小點,編程添加圖標如果它永遠在那裏。如果不同用戶的圖標不同,這可能是有意義的,例如,說你的應用程序有不同主題的主題系統,然後你可能需要使用headLink()。

瀏覽器往往會緩存favicons很長一段時間,所以只要鏈接標記出現在您的HTML源代碼中,它就會最終更新。您可以通過更改文件名,直接在瀏覽器中查看圖標和/或清除瀏覽器緩存來加速進程。

+0

使用option2我能夠顯示favicon在mysite/public只有。其他鏈接仍然顯示良好的舊zend favicon。我不明白爲什麼和在哪lt圖標來自。感謝您的時間和詳細的解釋。 – polerto

3

你只需將favicon.ico文件移動到公共文件夾! ;)

+0

'謝謝,但不幸的是不工作..我仍然得到默認的zend圖標(一個藍色的Z更淺的藍色背景)我已經複製到任何地方來測試它。 IE瀏覽器能夠顯示圖標,我使用新創建的zend項目對它進行了測試,但效果並不好, – polerto

+0

可能是一個緩存問題!你試過清空它並重新啓動你的電腦嗎? – JellyBelly

1

我發現,如果相對屬性是「的favicon」預期的東西不工作,直到我上面屬性更改爲「快捷方式圖標」(下火狐5.0測試的Ubuntu)

+1

謝謝!這解決了我的問題。 (Windows 7 Firefox和Chrome) – Yens

+0

這也適用於我! –

0

的ZF2骨架應用包括默認favicon.ico在/public/img/favicon.ico。只要改變那個文件,你就可以走了。

也可以幫助強制瀏覽器緩存通過明確指向該文件路徑來刷新文件。

1
//in controller 
$this->view->headLink(array('rel' => 'shortcut icon', 'href' => '/themes/kieuhung/images/favico.png', 'type' => 'image/x-icon'), 'PREPEND'); 

//and in layout 
echo $this->headLink(); 

好運