2

レイアウトに少数のスタイルを設定し$this->headLink()->appendStylesheet()ており、ビュー内から別のスタイルシートを追加しようとしています。ただし、ビューのスタイルシートは常に、headLink スタックでレンダリングされる最初のものです。

レイアウト.phtml:

echo $this->headLink()->appendStylesheet($this->basePath('css/styleA.css'))
                      ->appendStylesheet($this->basePath('css/styleB.css'));

次に、ビューで次のことを試しました

view.phtml:

$this->headLink()->appendStylesheet($this->basePath('css/sub/styleC.css'));

$this->headLink()->offsetSetStylesheet(100, $this->basePath('css/sub/styleC.css'));

ただし、どちらも最終的には styleC がレンダリングされる最初のリンク タグになります。子ビューが最初にレンダリングされる (つまり、view.phtml が layout.phtml の前にレンダリングされる) ことは理解していますが、レンダラーが同じである限り、headLink や headScript などのヘルパーは共有スタックを持っていると思いました。この仮定は間違っていますか?

4

1 に答える 1

2

スタイルシートをレイアウトの先頭に追加する必要があります。たとえば、次のようになります。

echo $this->headLink()->prependStylesheet($this->basePath('css/styleB.css'))
                      ->prependStylesheet($this->basePath('css/styleA.css'));

以前と同じようにビューにスタイルシートを追加します。

于 2013-07-22T15:19:01.237 に答える