[英]Passing data to dynamic CSS file?
這更多地是關於瀏覽器將要做什么的問題,而不是后端體系結構。
我正在使用codeigniter,並具有一個控制器設置來處理資產(CSS,JS和圖像),此刻,我只是從CSS文件中處理PHP並將它們作為CSS文件呈現給瀏覽器,所以www.mysite.com/asset/home.css
將調用資產類並從單個文件生成home的CSS文件。
我想使對CSS文件的請求更加動態,以便該請求將確定應合並的多個文件,然后將其傳遞給less.php
進行解析和最小化。
考慮到緩存問題,將變量傳遞給CSS類的最佳方法是什么? 扁平鏈接URI變量? 傳統的GET URI? 我可以使用數據庫引用其組件的給定名稱,但這不是很多開銷嗎?
歡迎任何想法或意見!
++瀏覽器將如何處理諸如standard.menu.comments.css
?
+++我最終將URI字符串附加到文件中。 它不是我想要的那樣干凈,但是它似乎正在工作。 我可能會很快移到用斜杠分隔的URI解析器中,以清理請求行。 謝謝你的幫助!
您可以使用以下標頭創建文件style.php
:
<?php header("Content-type: text/css"); ?>
並在您的模板中鏈接此樣式:
<link rel="stylesheet" type="text/css" media="screen" href="style.php?color=red">
然后,您可以在style.php
導入一些樣式表:
@import ("someStyle.css");
或者,您可以傳遞一些$_GET
變量並創建條件樣式:
<?php
if ($_GET['color'] == 'red')
{
echo ".myBlock {background: #ff0000;}";
}
else
{
echo ".myBlock {background: #00ff00;}";
}
?>
如果您只是不想緩存.css
文件,請將隨機$ _GET變量附加到鏈接的樣式中:
<link rel="stylesheet" type="text/css" media="screen" href="style.css?<?php echo time(); ?>">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.