2

私は本「Zend Framework - A Beginner's Guide」の例をやっています。ほぼ完了しましたが、いくつかの奇妙な問題が見つかりました。それらの 1 つは私の admin.phtml レイアウト ファイルにあります。私はこのコードを持っています:

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

ページを読み込むと、master.css リンクが 2 回表示されます。

<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() 関数をコメントアウトすると、予想どおり何も表示されません。呼び出しを 1 回しか行わないのに、この関数が 2 回実行される理由は何ですか?

補遺: テストとして、2 つの appendStyleSheet 関数を実行したところ、結果のページに CSS ファイルが 3 回表示されました。明らかに、最初の呼び出しで 2 回、2 回目の呼び出しで 1 回です。手がかりはありますか?

4

2 に答える 2

6

headLinkをエコーするだけ

<?php $this->headLink()->appendStylesheet($this->baseUrl().'/css/master.css'); ?>
<?= $this->headLink(); ?>
于 2013-05-12T02:29:42.657 に答える
1

代わりに setStylesheet() を使用してこれを修正しました。

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

Joel Joel Binks が説明したように、appendStylesheet() への最初の呼び出しは、スタイルシートを追加して返します。2 番目の呼び出しは、以前に追加されたスタイルシートと 2 番目のスタイルシートを返すため、最初のスタイルシートが 2 回表示されます。

于 2014-07-11T15:30:03.683 に答える