2012-06-27 61 views
3

我已經在這個很長一段時間一直在讀......我很困惑 -的Yii包括CSS和JS文件

你能對之間有什麼區別幫助:

Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/some-file.css'); 

<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/some-file.css 

是它是一個性能問題,還是隻是不同的語法?

感謝, 丹尼

回答

5

registerCssFile總註冊<head>標籤之間的文件,即使你在一個視圖的地方調用它。 如果您關心HTML驗證( <body>無效),但仍希望在視圖中包含CSS文件,這會很有幫助。

registerCssFile實際上有助於提高性能,因爲CSS僅在需要時註冊(並且需要它)。

+4

還應該注意的是,registerCssFile的優勢在於,如果您在多個位置(例如在視圖中,在擴展中等)加載CSS,則會阻止它多次加載。 。 。 – ernie

+1

這是一個很好的觀點。 – adamors

+0

謝謝,這就是我需要的! –

0

您使用它的方式完全相同。要驗證這一點,請檢查頁面的源代碼(在瀏覽器中)並檢查Yii :: app() - > clientScript-> registerCssFile創建的語句。

但是,clientScript允許您控制腳本在HTML文件中的位置。查看:http://www.yiiframework.com/doc/api/1.1/CClientScript#registerScriptFile-detail並查找POS_HEAD,POS_BEGIN,POS_END。

可能更重要的是:在MVC哲學中,您希望在視圖文件中包含與HTML輸出相關的所有內容。 Yii :: app() - > clientScript允許您從視圖文件中添加CSS和JS文件。這就是你想要的地方。