2012-09-08 19 views
1

我的每個頁面都共享common.css樣式表,但幾乎所有其他頁面都有它自己的自定義樣式表,這對於javascript文件是相同的。PHP MVC不同的樣式表,每個頁面上的javascript文件

我主要的模板文件是這種格式的(顯然是真正的一中有多個HTML):

<html> 
<head> 
    <title><?php echo $this->data['title']; ?></title> 
</head> 
<body> 
    <?php echo $this->data['content']; ?> 
</body> 

我想這樣做是這樣的:

當我在控制器中創建視圖對象時,我可以將所需的文件(在一個數組中)添加到視圖對象,然後可以在主模板中訪問它們,如$this->data['css']$this->data['javascript'],我可以遍歷主模板中的數組將其輸出到頁面的<head>中。

這是一個好的方法來做到這一點,或者是打破一些規則或不好的做法?謝謝。

+1

如果您將整個CSS包含在一個外部文件中,它可能會被用戶緩存,這可能會導致它們的性能提高。 – Fluffeh

+0

雖然這不會是一個災難來維護和編輯?這些日子大多數網站都在做什麼? – David

+0

我不這麼認爲,你在一個文件中設置你的CSS,並讓你的輸出使用它中的元素。可能需要花費一些努力來設置(比如在制定所有你需要的樣式時),但是一旦設置好了,就比在每個函數中發送內聯CSS更容易。如果你想更新你的網站風格會發生什麼 - 你真的想挖掘每個風格標籤的潛在數千行代碼嗎? – Fluffeh

回答

0

這是完全沒問題的,儘管我建議你自己寫一個asset()的方法,以便在文件名之前加上你的基路徑。 http://yoursite.com/web/]所以你的代碼更加便攜,部署更容易。

正如Fluffeh所說,考慮在單個文件中壓縮整個樣式以獲得更好的性能 - 例如,檢查YUI compressor

+0

你自己寫一個資產()是什麼意思?寫一個資產函數來完成什麼或寫一個資產類? – David

+0

對不起,我的意思是你的類的'asset()'方法,所以你可以調用'$ this - > asset('style.css')'或整個數組。 – moonwave99

+0

好的,這給了我可能寫一個管理外部文件(CSS和JavaScript)的小班的想法,我可以將它實現到我的視圖中。 – David

相關問題