2013-05-12 72 views
2

我正在做的書「Zend Framework - 初學者指南」中的例子。我快完成了,但我發現了一些奇怪的問題。其中之一是在我的admin.phtml佈局文件中。我有這樣的代碼:Zend Framework 1.12 - AppendStylesheet使鏈接到CSS文件兩次

<?php echo $this->headLink()->appendStylesheet($this->baseUrl().'/css/master.css'); ?> 

當我打開我看到的頁面會顯示兩次master.css鏈接:

<link href="/square2/public/css/master.css" media="screen" rel="stylesheet" type="text/css" /> 
<link href="/square2/public/css/master.css" media="screen" rel="stylesheet" type="text/css" /> 

當我註釋掉appendStyleSheet()函數,如預期,沒有什麼表演向上。當我只打一次電話時,爲什麼這個功能要做兩次?

附錄:作爲一個測試,我做了兩個appendStyleSheet函數,並在結果頁面中看到CSS文件三次,顯然第一次調用兩次,第二次調用一次。任何線索?

回答

5

只是呼應headLink

<?php $this->headLink()->appendStylesheet($this->baseUrl().'/css/master.css'); ?> 
<?= $this->headLink(); ?> 
+1

這幫我弄明白了。該代碼迴應另一個appendstylesheet爲不同的css文件,因此回聲第一個css文件兩次,這就是問題所在。我會寫作者告訴他他犯了一個錯誤。 – 2013-05-12 02:50:59

+1

好回答@​​zavg – liyakat 2013-05-12 13:30:04

1

我解決了這個問題,通過使用setStylesheet()代替:

<?php $this->headLink()->setStylesheet($this->baseUrl().'/css/master.css'); ?> 

正如喬爾·喬爾賓克斯,以appendStylesheet(第一次調用解釋)追加樣式表並返回它。第二次調用返回任何先前附加的樣式表加上第二個樣式表,因此第一個樣式表將出現兩次。