簡體   English   中英

將數據傳遞到動態CSS文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM