在fatfree框架中,我正在尝试编写一个函数,它可以吐出缩小的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个错误,所以我做错了什么?
答案 0 :(得分:0)
默认情况下,Web->minify
函数会发送Content-Type HTTP标头。为了防止出现这种情况,您应该将第三个参数设置为FALSE:
\Web::instance()->minify($filepaths,NULL,FALSE)
注意:complete函数签名是:
minify ( string|array $files [, string $mime = NULL [, bool $header = TRUE ]] )