0

これは、バックエンド アーキテクチャというよりも、ブラウザが何をするかという問題です。

私はcodeigniterを使用しており、アセット (CSS、JS、および画像) を処理するためのコントローラーをセットアップしています。現時点では、CSS ファイルから PHP を処理し、それらを CSS ファイルとしてブラウザーに提示しているだけなのでwww.mysite.com/asset/home.css、アセットを呼び出します。クラスを作成し、1 つのファイルからホーム用の CSS ファイルを生成します。

CSS ファイルの要求をより動的にして、結合する必要がある複数のファイルを要求が決定しless.php、解析と最小化のために に渡すようにしたいと考えています。

キャッシングの問題を考慮して、変数を CSS クラスに渡す最良の方法は何でしょうか? フラット リンク URI 変数? 従来のGET URI? データベースを使用してそのコンポーネントの特定の名前を参照することはできますが、オーバーヘッドが大きくなりませんか?

ご意見・ご感想なんでも大歓迎です!

++ ブラウザは次のようなものをどのように処理しますstandard.menu.comments.cssか?

+++ ファイルに URI 文字列を追加することになりました。私が望むほどきれいではありませんが、機能しているようです。リクエスト行をクリーンアップするために、すぐにフラット スラッシュで区切られた URI パーサーに移行する予定です。ご協力いただきありがとうございます!

4

1 に答える 1

5

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(); ?>">
于 2012-08-09T15:16:21.923 に答える