2011-06-22 16 views
6

Zend çerçevesinde bir favicon.ico kullanmanın en iyi yolu nedir?Zend Framework'de bir favicon kullanma

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

veya modifikasyonlar .htaccess dosyası: Ben gibi phtml dosyaların değiştirilmesini gerektirir alternatifleri gördük.

sayesinde

+0

"en iyi yolu" tanımlayın. Bunu yapabilmeniz için birçok farklı yol vardır, ancak nasıl çalıştığını (tüm sayfalar için aynı) ve sitenizin şu anda nasıl kurulduğuna bağlı olarak “en iyi yol” çok farklı olabilir. – Niklas

+0

@Niklas: Haklısın, birçok farklı yöntem var. Aslında bu yüzden şaşkınım. Tüm sayfalar için aynı olması gereken tek bir favicon.ico kullanmaya çalışıyorum. Layout/phtml dosyalarını sorudaki ilk alternatife göre değiştirdim, ancak simge değişmiyor (hala varsayılan zend-framework simgesi). Eminim ki yanlış bir şey yapıyorum. – polerto

+0

ayrıca bu echo $ eklediniz-> headLink() '? Çünkü sadece atama, görünümünüzde/düzeninizde bir yerde 'headLink' içeriğinin çıktısını almadıkça hiçbir şey göstermeyeceği için – Niklas

cevap

5

Üç seçenek:

  • Hiçbir şey yapmama - favicon favicon.ico adında ve kamu dizinde oturan ise, çoğu tarayıcı içine
  • Sabit kodu <link> etiketi gelip alacak senin düzen
  • programlı sizin kod örneğinde link tag olarak eklemek programlı favicon eklemeyi küçük nokta var
  • Şahsen

Ben seçeneği 2 için giderdim eğer her zaman orada olacaksa. Favicon farklı kullanıcılar için farklıysa, örn. uygulamanızın farklı temalar için farklı faviconlarla bir tema sistemi olduğunu söyleyin, daha sonra headLink() kullanmak isteyebilirsiniz.

Tarayıcılar, HTML etiketinizde bağlantı etiketi göründüğü sürece, uzun bir süreliğine favicon önbelleğe alma eğilimindedirler; Dosya adını değiştirerek, favicon'ı doğrudan tarayıcınızda görüntüleyerek ve/veya tarayıcı önbelleğinizi temizleyerek işlemi hızlandırabilirsiniz.

+0

option2 kullanarak favicon'u gösterebildim sadece mysite/public.en diğer linkler hala iyi eski zend favicon gösterir.Nedenini anlamıyorum lt simgesi geliyor. Zaman ayırdığınız için teşekkürler ve detaylı açıklama. – polerto

3

sadece klasör halkın içine favicon.ico dosya taşımak! ;)

+0

Teşekkürler ama ne yazık ki işe yaramaz .. Yine de varsayılan zend favicon'unu (açık mavi arkaplanlı mavi Z) aldım.Onu test etmek için her yere kopyaladım. IE, yeni oluşturulan bir zend projesi kullanarak test ettim ama verimli değildi – polerto

+0

belki bir önbellek problemi boşalttın ve PC'nizi yeniden başlatmayı denediniz mi? – JellyBelly

1

Ben rel nitelik olmaktan eğer ben özniteliği yukarıdaki değişikliği ettik kadar çalışmıyor beklenen şeyler "favicon" bulundu (Firefox 5.0 Ubuntu altında test) "kısayol simgesi"

+1

Teşekkürler! Bu benim problemimi çözdü. (Windows 7 Firefox ve Chrome) – Yens

+0

Bu benim için de çalıştı! –

0

ZF2 iskelet uygulama içeren bir /public/img/favicon.ico adresinde varsayılan favicon.ico. Sadece dosyayı değiştir ve gitmek için iyisin.

Ayrıca, tarayıcı önbelleğini dosyayı bu dosya yoluna açıkça işaret ederek dosyayı yenilemeye zorlamaya da yardımcı olabilir.

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(); 

iyi şanslar