0

这更多的是浏览器会做什么的问题,而不是后端架构的问题。

我正在使用codeigniter并设置了一个控制器来处理资产(CSS、JS 和图像),目前我只是从 CSS 文件中处理 PHP 并将它们作为 CSS 文件呈现给浏览器,因此www.mysite.com/asset/home.css将调用资产类并从单个文件生成主页的 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 回答