2009-02-15 90 views
3

我創建了一個叫做style.php CSS頁面,這包括頂部:在css文檔中使用php是一個壞主意嗎?

<?php header("Content-type: text/css"); ?>

這是否讓你畏縮。這是一個可怕的主意嗎?我這樣做是因爲我創建了一個允許管理員控制頁面顏色的CMS(所以style.php腳本查詢數據庫並獲取十六進制值)。

有什麼想法?

回答

4

這是一個很好的解決方案,只要確保您正在提供適當的標題。有關相關主題,請參閱my blogpost(搜索「重要標題」以進入正確的部分)。

一件事:

隨着你可能會進入一用戶改變她想看到的顏色,但(因爲它是在客戶端緩存),該網頁不更新的情況緩存。要使緩存失效,請在URL末尾附加一個?= id,其中ID是爲用戶存儲的數字(例如在會話中),並且每次更改顏色方案時都會增加。

例子:

+0

實際上,控制緩存的正確方法是使用Etag頭,而不是查詢字符串。 – 2009-02-15 06:56:21

+0

實際上,當緩存過期時,使用查詢字符串是一個很好的技巧來啓用緩存和控制。有關更多信息,請參閱http://developer.yahoo.com/performance/rules.html#expires。 – 2009-02-15 07:22:24

1

假設您使用適當的緩存,正如我想象的CMS驅動的值可能不會經常更改,沒有具體的理由來避免創建一個CSS動態包含。

1

這不是一個壞主意。這是許多好處一個創造性的想法:W/O你不必擔心安全(解析CSS是硬)

  • 用戶可以定義值
  • 可以強制視覺上更加一致的皮膚(一些靈活性比完全的靈活性更好)
  • 簡單的代碼
5

這不是一個壞主意(受有關緩存+內容類型)的音符,但想想發射了一個PHP實例的成本(mod_php的)或將腳本傳遞給已經運行的php(fastcgi樣式)。你真的想要那個開銷嗎?

將一個「緩存」版本的CSS頁面寫入一個靜態文件並提供它(或者如果您需要每頁靈活性,選擇要包含的樣式表;我假設您的主頁是PHP已經)

相關問題