2013-05-12 71 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(第一次调用解释)追加样式表并返回它。第二次调用返回任何先前附加的样式表加上第二个样式表,因此第一个样式表将出现两次。