2009-12-02 49 views
3

就像我之前做的那樣,我爲以下代碼使用了我的新項目。

<?=$this->headLink()->appendStylesheet('/Layouts/admin/css/button.css');?> 
<?=$this->headLink()->appendStylesheet('/Layouts/admin/css/inputText.css');?> 
<?=$this->headLink()->appendStylesheet('/Layouts/admin/css/fancyTable.class.css');?> 

當我打開網站和查看源代碼時,有重複的CSS鏈接標籤。

<link href="/Layouts/admin/css/button.css" media="screen" rel="stylesheet" type="text/css" ><link href="/Layouts/admin/css/button.css" media="screen" rel="stylesheet" type="text/css" > 
<link href="/Layouts/admin/css/inputText.css" media="screen" rel="stylesheet" type="text/css" ><link href="/Layouts/admin/css/button.css" media="screen" rel="stylesheet" type="text/css" > 
<link href="/Layouts/admin/css/inputText.css" media="screen" rel="stylesheet" type="text/css" > 
<link href="/Layouts/admin/css/fancyTable.class.css" media="screen" rel="stylesheet" type="text/css" > 

<link href="/Layouts/admin/css/button.css" media="screen" rel="stylesheet" type="text/css" > 
<link href="/Layouts/admin/css/inputText.css" media="screen" rel="stylesheet" type="text/css" > 
<link href="/Layouts/admin/css/fancyTable.class.css" media="screen" rel="stylesheet" type="text/css" > 
<link href="/Layouts/admin/css/divine.css" media="screen" rel="stylesheet" type="text/css" > 

我的代碼是怎麼回事?

回答

11

你不應該單獨回顯它們。

應該有一個地方打印HeadLink幫助器,其他所有調用只將樣式表添加到該幫助器中打印。例如。以下規則隨時隨地視圖腳本:

<?php $this->headLink()->appendStylesheet('/Layouts/admin/css/button.css'); ?> 
<?php $this->headLink()->appendStylesheet('/Layouts/admin/css/inputText.css'); ?> 
<?php $this->headLink()->appendStylesheet('/Layouts/admin/css/fancyTable.class.css'); ?> 

然後這個在您的<head>

<?= $this->headLink() ?> 

或者,如果他們都在同一個地方去,無論如何,你可以把它們連在一起

<?= $this->headLink() 
    ->appendStylesheet('/Layouts/admin/css/button.css') 
    ->appendStylesheet('/Layouts/admin/css/inputText.css') 
    ->appendStylesheet('/Layouts/admin/css/fancyTable.class.css'); ?> 

這將打印與這3個樣式表連接的HeadLink助手的內容。

另請參閱HeadLink helper Zend documentation;特別是這個例子。

+0

啊!!大!!謝謝!! – Moon 2009-12-02 22:45:35

+0

這個。這對我造成了無窮的煩惱,重複的css文件導致超過31個樣式表。這使IE8開始忽略31以上的樣式表,導致各種隨機問題。謝天謝地 – Boccobrock 2013-06-13 16:02:26