在无脂框架中,我试图编写一个函数,它可以将css/js缩小,并从模板htm中调用它。但是,当我试图用htm调用函数时,整个页面就被呈现为文本,包括doctype和所有标记。
我的控制器只是:
public function index($f3, $params) {
echo \Template::instance()->render($this->BM->themeAbsPath('user_group.htm'));
}在.htm模板中有:
<style>
{{ @BM->minify('css','css/',array(
'bootstrap-theme.min.css',
'main.css',
'vendor/smartmenus-0.9.5/addons/bootstrap/jquery.smartmenus.bootstrap.css',
'vendor/datatables/css/jquery.dataTables.css',
'vendor/datatables/css/jquery.dataTables_themeroller.css'
)) }}
</style>最后,职能是:
public function minify($type='css',$folderpath='css/',$files=array()){
$filepaths = implode(",",$files);
$this->f3->set('UI',$this->themeRelFolder().'/'.$folderpath);
$this->f3->set('minified_'.$type,\Web::instance()->minify($filepaths));
return $this->f3->get('minified_'.$type);
}我没有收到任何500个错误,所以我做错了什么?
发布于 2014-03-14 16:54:29
默认情况下,Web->minify函数发送内容类型HTTP报头。为了防止这种行为,应该将第三个参数设置为FALSE:
\Web::instance()->minify($filepaths,NULL,FALSE)注意:完成函数签名是:
minify ( string|array $files [, string $mime = NULL [, bool $header = TRUE ]] )https://stackoverflow.com/questions/22408895
复制相似问题