Cap*_*ppY 1 html css php codeigniter
我在Code Igniter上重写网站,我需要加载外部TTF.MySQL db指向该TTF的路径.我可以以某种方式将这些变量传递给CSS并使foreach循环"加载"这些字体.
我试过了
$this->load->vars($data);
Run Code Online (Sandbox Code Playgroud)
首先,处理动态CSS的服务.我的网站有一个名为"资源"的控制器,它允许我提供CSS,JS等(可能是未来的图像).它根据在url中传递给它的段加载视图.
所以,http://mysite.com/resource/css/main.css
请求时:
Resource
controller(.../controllers/resource
)处理任何特定的数据处理(一般用于MVC控制器).然后加载:".../views/resources/css.php"
传递所需css文件的名称.此视图打印出标题,指定Content-Type(重要!)和任何其他通用内容.然后继续加载:".../views/resources/css/main.css.php"
.它有点矫枉过正,但允许很多灵活性,就像你听起来像你需要的那样.
控制器:
...
$segments = $this->uri->segment_array();
array_shift($segments); // remove the first two
array_shift($segments);
$content['stylesheet'] = $segments[0] . ".php"; //e.g. main.css.php
$content['data'] = array(); //Font data, etc
$this->load->view('resources/css.php', $content);
..
Run Code Online (Sandbox Code Playgroud)
Generic resources/css.php 这会加载实际的.css.php样式表
<?php header("Content-Type: text/css"); // This is key! ?>
/* MySite CSS File (c) 2011 bla bla */
<?php
$this->load->view("resources/css/$stylesheet", $data);
echo "\n";
?>
Run Code Online (Sandbox Code Playgroud)
具体资源/ css/main.css.php
<?php echo "/* I can use PHP in my CSS! */\n"; ?>
body { background-color: <?=$data['bg_color']?>; }
p { font-family: <?=$data['p_font_fam'];?>; }
Run Code Online (Sandbox Code Playgroud)