2012-06-29 85 views
0

我想追加頭標籤內的CSS樣式表,但是會追加到主體標籤。 這是我做的: 我有行動「索引」和我的看法控制器「國家」是index.phtml樣式表視圖在zend框架中的助手

index.phtml包含:

<?php 
$this->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css') 
      ->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojox/grid/resources/claroGrid.css'); 
echo $this->headLink(); 

這將導致樣式表被追加內身體標籤。 我只希望這些樣式表被附加到這個動作。我不想在我的layout.phtml中包含這個樣式表。我該怎麼做?

回答

3

你所做的一切是正確的,但你只需添加樣式表而這一點正是輸出放錯了地方的鏈接後呼應headLink()在您的視圖。改變你的代碼,以便您有:

在index.phtml:

$this->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css') 
     ->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojox/grid/resources/claroGrid.css'); 

然後在layout.phtml(在你想要的樣式表的鏈接出現在<head>部分):

echo $this->headLink(); 
2

你在錯誤的地方添加了這個。
如果您在.phtml文件中以這種方式添加樣式表,那麼您將位於文檔的正文中。
添加樣式表到一個頁面的頭從你的操作代碼添加樣式表控制器內:

public function someAction() { 
    $this->view->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css'); 
} 

交替,如果你想將樣式表添加到一個控制器,你可以使用的所有動作在您的控制器的init()方法相同的代碼:

public function init() { 
    $this->view->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css');  
} 

如果你需要覆蓋當前樣式表可以使用setStylesheet(),也可以使用prependStylesheet()或appendStylesheet()。

好運...

+1

您也可以在視圖中添加佔位符內容,因爲它在佈局之前呈現。 –

+0

對不起,我認爲他已經在他的佈局佔位符。我也沒有意識到代碼會從視圖中工作(從來沒有真正想過),因爲我永遠不會考慮將這種代碼放在視圖中。但是我糾正了,謝謝 – RockyFord