当我尝试调用函数时,模板呈现为纯文本

时间:2014-03-14 15:12:43

标签: php minify fat-free-framework

在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个错误,所以我做错了什么?

1 个答案:

答案 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 ]] )