Bay*_*que 0 css php codeigniter cross-browser less
这更像是一个浏览器将要做什么的问题,而不是后端架构.
我正在使用codeigniter并有一个控制器设置来处理资产(CSS,JS和图像),目前我只是简单地处理PHP文件中的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"); ?>
Run Code Online (Sandbox Code Playgroud)
并在模板中链接此样式:
<link rel="stylesheet" type="text/css" media="screen" href="style.php?color=red">
Run Code Online (Sandbox Code Playgroud)
然后你可以导入一些样式表style.php:
@import ("someStyle.css");
Run Code Online (Sandbox Code Playgroud)
或者您可以传递一些$_GET变量并创建条件样式:
<?php
if ($_GET['color'] == 'red')
{
echo ".myBlock {background: #ff0000;}";
}
else
{
echo ".myBlock {background: #00ff00;}";
}
?>
Run Code Online (Sandbox Code Playgroud)
如果您只是不希望.css缓存文件,请将随机$ _GET变量附加到链接样式:
<link rel="stylesheet" type="text/css" media="screen" href="style.css?<?php echo time(); ?>">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3618 次 |
| 最近记录: |